我正在 mysql db 中寻找正确的查询。让我们考虑一下我有表:
用户:
id | user_name | desc
--------------------------
1 | john | tall
2 | john | fat
3 | maria | pretty
项目:
id | item_name | color
--------------------------
1 | trousers | red
2 | shoes | blue
3 | shoes | red
我的搜索引擎搜索数据库以选择带有查询的结果:
SELECT i.item_name, i.color, u.user_name, u.desc
FROM users u, items i
WHERE u.id = i.id
AND item_name REGEXP $keywords
AND user_name REGEXP $keywords
变量 $keywords 是这样的:
$keywords = explode(' ', $_POST['keywords']);
$keywords = implode('|', $keywords);
现在,当 $keywords = 'john trousers' 一切正常 - 我得到 id = 1 的用户。没关系。但是当我设置 $keywords = 'john' 它返回空字符串。我什至知道为什么 - item_name 中没有“john”,所以我的 AND 条件返回 false。问题是:什么是正确的正则表达式返回 user = 1 和 $keywords = "john trousers" 并且如果 $keyword = 'john' 得到两行 - id = 1 和 id = 2?
提前致谢。