TAB1
| id | description |
-------------------------
| 1 | lake |
| 2 | moon |
| 3 | sun |
| 4 | mars |
TAB2
| id | description |
-------------------------
| 1 | home |
| 2 | top |
| 3 | cat |
| 4 | dog |
TAB3
| id | description |
-------------------------
| 1 | home |
| 2 | car |
| 3 | yea |
| 4 | flower |
我希望,通过SQL查询,验证" string"在现场退出" description
"在其中一个表中。
我使用Php,我需要知道该行是否存在,如果是,则找到记录的位置。
答案 0 :(得分:5)
您可以使用UNION ALL
和通配符运算符%
,例如:
SELECT 'tab1' AS `table` FROM `tab1` WHERE `description` LIKE '%string%'
UNION ALL
SELECT 'tab2' AS `table` FROM `tab2` WHERE `description` LIKE '%string%'
UNION ALL
SELECT 'tab3' AS `table` FROM `tab3` WHERE `description` LIKE '%string%'
答案 1 :(得分:2)
试试这个:
SELECT 'tab1' as TableName,id,description FROM tab1 WHERE description LIKE '%Cat%'
UNION
SELECT 'tab2' as TableName,id,description FROM tab2 WHERE description LIKE '%Cat%'
UNION
SELECT 'tab3' as TableName,id,description FROM tab3 WHERE description LIKE '%Cat%'
<强>解释强>
使用此查询,第一个字段将是记录所在表的名称。
类似的东西:
TableName id description
------------------------------
tab2 3 cat
旁注:
如果任何表格多次包含说明,那么您可以使用UNION ALL
代替UNION
。
答案 2 :(得分:1)
一些联合查询?
SELECT 'tab1' FROM tab1 WHERE description = 'something'
UNION
SELECT 'tab2' FROM tab2 WHERE description = 'something'
UNION
SELECT 'tab3' FROM tab3 WHERE description = 'something'