SELECT *
FROM results
INNER JOIN first_name USING first_name_id
INNER JOIN last_name USING last_name_id
WHERE CONCAT (
REPLACE(first_name, " ", ""),
REPLACE(last_name, " ", ""))
LIKE "%John Smith%"
使用此查询时没有结果,但是当我使用它时:
SELECT *
FROM results
INNER JOIN first_name USING first_name_id
INNER JOIN last_name USING last_name_id
AND fn.first_name LIKE "%John%"
AND last_name LIKE "%Smith%"`
我必须使用John Smith
并删除名称之间的空格。 mysql查询的预期返回值为:%JohnSmith%
显示结果的正确方法是什么?
答案 0 :(得分:0)
使用功能
TRIM(COLUMN_NAME);
删除空格
例如:TRIM(FIRST_NAME)
答案 1 :(得分:0)
这是因为您正在连接名字和姓氏,并且还将其与不同的关键字匹配。您可以选择以下任何一种查询来执行您首先尝试执行的操作。
在这个中,我只是从你喜欢的关键字中删除了空格。
SELECT *
FROM results
INNER JOIN first_name USING first_name_id
INNER JOIN last_name USING last_name_id
WHERE CONCAT(REPLACE(first_name, " ", ""), REPLACE(last_name, " ", "")) LIKE "%JohnSmith%"
或
在这篇文章中,我在first和last name列之间的concat函数中引入了一个空格。
SELECT *
FROM results
INNER JOIN first_name USING first_name_id
INNER JOIN last_name USING last_name_id
WHERE CONCAT(REPLACE(first_name, " ", ""), " ", REPLACE(last_name, " ", "")) LIKE "%John Smith%"