【发布时间】:2014-11-12 03:57:54
【问题描述】:
我有一个 MySQL Wordpress 数据库,我正在处理结构不太好的 postmeta 表。它有四列:“meta_id、post_id、meta_key、meta_value”。这是我正在处理的查询:
SELECT DISTINCT *
FROM wp_10_postmeta as pm
JOIN wp_10_posts AS p ON pm.post_id = p.ID
WHERE (meta_key LIKE 'personnel_%_last_name' OR
meta_key LIKE 'personnel_%_first_name' OR
meta_key LIKE 'personnel_%_title' OR
meta_key LIKE 'personnel_%_alias' OR
meta_key LIKE 'webpages_%_title' OR
meta_key LIKE 'webpages_%_alias' OR
meta_key LIKE 'departments_%_name' OR
meta_key LIKE 'departments_%_alias')
AND post_status = 'publish' AND meta_value LIKE '%john%' AND meta_value LIKE '%smith%'
问题:如果我搜索“john”或“Smith”,此查询效果很好,但如果我搜索“John Smith”,则返回空。有没有办法结合“personnel_%_last_name”和“personnel_%_first_name”然后比较?
【问题讨论】:
-
meta_value 列中有哪些值?
-
这是一个员工和部门的目录,所以几乎只是字符串。