Sql,知道记录是否存在以及它在哪个表中

时间:2014-05-21 12:56:51

标签: php jquery mysql sql

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,我需要知道该行是否存在,如果是,则找到记录的位置。

3 个答案:

答案 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%'

SQLFiddle Demo

答案 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'