2014-02-27 79 views
-1

我试图搜索两列的值是相似的,只显示具有该值的列的数据而不是其他列,两列都不能包含相同的值。Mysql选择列作为一个,但只显示一个值%%like%

我的代码

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 

当前查询输出那里找到喜欢的%%I只是希望它的输出只有在喜欢的%%的找到了列都FNAME和姓氏值。

回答

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 
+0

CASE当fname LIKE'%james%' THEN fname ELSE lname END'AS name,date'按预期工作非常感谢。 – Genus

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

Name的细胞返回Null空? – Genus

相关问题