Mysql选择列为一个但只显示一个值%like%

时间:2014-02-27 09:04:17

标签: mysql select concat

我正在尝试搜索两个值相似的列,并且只显示值不是另一列的列的数据,这两列不能包含相同的值。

我的代码

SELECT CONCAT(`fname`,`lname`)as name ,date  
       FROM `table` WHERE id='1' AND CONCAT(`fname`,`lname`) LIKE '%james%' 
       ORDER BY date ASC LIMIT 0,1 

当前查询输出fname和last name值,它找到%like%i我只希望它只输出找到%like%的列。

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT 
CASE 
   WHEN fname LIKE '%james%'
   THEN fname
   ELSE lname
END 
AS name
FROM `table`
WHERE id='1' AND CONCAT(`fname`,`lname`) LIKE '%james%' 
ORDER BY date ASC LIMIT 0,1 

答案 1 :(得分:0)

select concat(if(fname, fname, ""), if(lname, lname, "")) as name, date ...