比方说,我有这个mysql table structure
:MySQL的返回表名
table : articles
----------------
id
content
table : news
------------
id
news
有没有办法来搜索这两个表一个字符串,然后如果发生字符串返回表的名称和行号?
比方说,我有这个mysql table structure
:MySQL的返回表名
table : articles
----------------
id
content
table : news
------------
id
news
有没有办法来搜索这两个表一个字符串,然后如果发生字符串返回表的名称和行号?
假设两个表有ID和新闻/内容相同的数据类型,然后沿
SELECT id, 'articles' as tablename
WHERE content like '%string to search for%'
UNION
SELECT id, 'news' as tablename
WHERE news like '%string to search for%'
线路查询应该给你,你以后
你可以试试这个结果:
SELECT 'articles' as table_name, id
FROM `articles`
WHERE content like '%<my_string>%'
UNION
SELECT 'news' as table_name, id
FROM `news`
WHERE news like '%<my_string>%'
哼哼......想知道为什么我的回答得到了downvote?评论会有帮助! – 2010-01-30 19:17:14
SELECT * FROM (
SELECT id, content as text, 'articles' as tablename
FROM articles
UNION ALL
SELECT id, news as text, 'news' as tablename
FROM news
) as tmp
WHERE text = 'SEARCH_TERM'
我只是猜测这里,但是从表名我想,他要搜索的字符串作为子串,而不是完全匹配。 – 2010-01-30 14:06:53
yup,你是对的 – kmunky 2010-01-30 14:16:24
@kmunky,改变它以符合你的确切要求:) – Rob 2010-01-30 14:32:09