SQL - 选择" firstName lastName"包含一个名字

时间:2015-06-12 20:49:21

标签: mysql sql database

我有一个数据库表" person"有两列firstName和lastName。现在我想选择所有" firstName lastName"包含给定的名称。我怎么能用SQL查询呢?

示例:

具有firstName的人x:A B和lastName:C

具有firstName的人y:A和lastName:B C

具有firstName的人z:A B和lastName:C D

如果查询的条件是fullName(firstName lastName)包含B C

,则应在输出中显示所有这些人

该表的设计是没有fullName列。

3 个答案:

答案 0 :(得分:7)

我认为以下会做你想做的事:

where concat(firstname, ' ', lastname) like concat('%', replace($search, ' ', '%'), '%')

这会将搜索词中的空格替换为通配符,因此可以想象它与其他一些情况相匹配。

答案 1 :(得分:0)

我不确定我是否遵循了100%,但似乎您想要选择名字中同时包含B和C的每个人。如果是这样的话,我会选择以下内容:

    var tempList = null;
    var finalList = [];

    // use underscore to get count of each number and store in tempList

    tempList = _.countBy(array, function(hour, index){
        return currentDiscInHourFormat;
    });

    //loop through the key/val obj that gets produced from tempList and set a multidimensional array in finalList

    for(var key in tempList){
        finalList.push([key, tempList[key]]);
    }

对于涉及单个字符串的更一般的解决方案,例如“AL”,请使用

SELECT (firstName, lastName) as FullName from person where 
(firstName like '%B%' OR lastName like '%B%') and 
(firstName like'%C%' or lastName like '%C%');

答案 2 :(得分:0)

我认为这就是你的要求

SELECT First_Name+' '+Last_Name As Full_Name
From Table_xyz where
First_Name in(a,ab, b)
And Last_Name in (b,c,bc,cd)