【发布时间】:2010-03-18 11:22:08
【问题描述】:
我需要使用 LIKE 函数搜索两个字段,并且也应该以相反的顺序匹配。我的表使用没有全文搜索的 InnoDB。
考虑以下情况:
我有包含 first_name 和 last_name 列的 users 表。上面有一行,值如下:
{
first_name: 'Ludwig',
last_name: 'van Beethoven',
}
案例:
- 可以搜索“路德维希·范·贝多芬”
- 可以搜索“贝多芬路德维希”
- 可以搜索“路德维希”
- 可以搜索“贝多芬”
我尝试了这条 SQL 语句,但没有成功。
SELECT CONCAT(first_name, ' ', last_name) as fullname
FROM users
WHERE fullname LIKE '%Ludwig van Beethoven%';
【问题讨论】:
-
目前,我正在使用这条 SQL 语句。 SELECT CONCAT(first_name, ' ' , last_name) as fullname FROM users WHERE CONCAT(first_name, ' ', last_name) LIKE '%string%' AND CONCAT(last_name, ' ', first_name) LIKE '%string%';它适用于所有情况。
标签: mysql