【问题标题】:How to make a SELECT col1,col2 FROM table WHERE col1+" "+col2 LIKE "John D%"?如何从表 WHERE col1+""+col2 LIKE"John D%" 中创建一个 SELECT col1,col2?
【发布时间】:2018-05-03 15:07:45
【问题描述】:

我正在尝试选择姓名+姓氏以“John D”开头的所有用户的姓名和姓氏,我的意思是它可以选择“John Doe”、“John Deniro”、“John Dalas”。

但是这个选择不起作用:

SELECT name,lastname FROM users WHERE name+" "+lastname LIKE 'john D%';

那么,我该怎么做呢?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    你可以使用CONCAT

    SELECT name,lastname FROM users 
    WHERE CONCAT(name , ' ', lastname) LIKE 'John D%';
    

    或(更好的解决方案,因为条件将是SARGable):

    SELECT name,lastname FROM users 
    WHERE name = 'John'
      and lastname LIKE 'D%'
    

    【讨论】:

    • 谢谢,CONCAT 是可扩展的,适用于我的实际问题,其中姓氏的第一个字母可以或不能输入。
    【解决方案2】:

    您应该拆分参数以使其正常工作。

    SELECT `name`, `lastname`
    FROM `users`
    WHERE `name` LIKE "John%" AND `lastname` LIKE "D%"
    

    【讨论】:

      【解决方案3】:

      或者,如果性能是模糊的重要......

      SELECT name
           , lastname 
        FROM users 
       WHERE name = 'John'
         AND lastname LIKE 'D%';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-28
        • 2016-12-05
        • 1970-01-01
        • 2016-08-12
        • 2019-05-22
        • 1970-01-01
        • 2013-09-17
        相关资源
        最近更新 更多