我正在尝试搜索两个值相似的列,并且只显示值不是另一列的列的数据,这两列不能包含相同的值。
我的代码
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%的列。
答案 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 ...