【发布时间】:2010-01-07 12:20:02
【问题描述】:
如何跨多个表使用mysql之类/通配符语法,会不会这么简单:
(SELECT * FROM `table1` WHERE `name` LIKE '%tom%') AND (SELECT * FROM `table2` WHERE `name` LIKE '%sam%')
未测试,只是考虑一下。
【问题讨论】:
标签: php mysql search wildcard sql-like
如何跨多个表使用mysql之类/通配符语法,会不会这么简单:
(SELECT * FROM `table1` WHERE `name` LIKE '%tom%') AND (SELECT * FROM `table2` WHERE `name` LIKE '%sam%')
未测试,只是考虑一下。
【问题讨论】:
标签: php mysql search wildcard sql-like
如果你的表有相同的结构,你可以使用UNION:
SELECT * FROM `table1` WHERE `name` LIKE '%tom%' UNION SELECT * FROM `table2` WHERE `name` LIKE '%sam%'
【讨论】:
使用联合
(SELECT * FROM `table1` WHERE `name` LIKE '%tom%') UNION
(SELECT * FROM `table2` WHERE `name` LIKE '%sam%')
【讨论】:
实际上,如果您使用 UNION,则可能会删除任何重复的行。如果您希望保留任何重复项,请使用 UNION ALL(例如,如果您想对 table1 和 table2 中匹配 %tom% 的所有行执行 COUNT。
(SELECT * FROM `table1` WHERE `name` LIKE '%tom%') UNION ALL (SELECT * FROM `table2` WHERE `name` LIKE '%tom%')
【讨论】: