【问题标题】:How to search using the LIKE syntax and % WILDCARD % across multiple tables如何使用 LIKE 语法和 % WILDCARD % 跨多个表进行搜索
【发布时间】: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


    【解决方案1】:

    如果你的表有相同的结构,你可以使用UNION:

    SELECT * FROM `table1` WHERE `name` LIKE '%tom%' UNION SELECT * FROM `table2` WHERE `name` LIKE '%sam%'
    

    【讨论】:

      【解决方案2】:

      使用联合

      (SELECT * FROM `table1` WHERE `name` LIKE '%tom%') UNION
       (SELECT * FROM `table2` WHERE `name` LIKE '%sam%')
      

      【讨论】:

        【解决方案3】:

        实际上,如果您使用 UNION,则可能会删除任何重复的行。如果您希望保留任何重复项,请使用 UNION ALL(例如,如果您想对 table1 和 table2 中匹配 %tom% 的所有行执行 COUNT。

        (SELECT * FROM `table1` WHERE `name` LIKE '%tom%') UNION ALL (SELECT * FROM `table2` WHERE `name` LIKE '%tom%')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-04
          • 1970-01-01
          • 2022-01-10
          相关资源
          最近更新 更多