代码之家  ›  专栏  ›  技术社区  ›  letsCode

对表中的多个列使用LIKE

  •  0
  • letsCode  · 技术社区  · 4 年前

    1. 玩家名称
    2. 变异

    select * from TBL where name LIKE '%$input%'

    如何根据单个用户输入搜索三列?也许在太空中爆炸然后搜索每个部分?有更好的方法吗?

    2 回复  |  直到 4 年前
        1
  •  2
  •   Tim Biegeleisen    4 年前

    如果需要在一个逻辑步骤中搜索所有三列,如 ,那么我建议实际上只保留第四列:

    year | playerName | variation | description
    2000 | Matt       | Base      | 2000 Matt Base
    

    现在你可以搜索 description

    SELECT *
    FROM yourTable
    WHERE description REGEXP ?
    

    ? ,您可以绑定用词边界包围的搜索词。例如,搜索 Matt

    "[[:<:]]Matt[[:>:]]"
    
        2
  •  0
  •   Bhargav Variya    4 年前

    你可以用 OR 操作员输入 WHERE 从多个列获取数据的条件。
    你的疑问

    select * from TBL where name LIKE '%$input%' OR playerName LIKE '%$input%' OR variation 
    LIKE '%$input%'  
    

    您也可以设置 AND 根据您的要求。