gpt4 book ai didi

mysql - SQL 合并具有相同通配符值的记录

转载 作者:行者123 更新时间:2023-11-29 23:46:34 26 4
gpt4 key购买 nike

我有一个 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”组合起来然后进行比较?

最佳答案

我猜您想跨多个字段查找匹配项。尝试使用 group by 来实现此目的:

    SELECT p.*
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 p.post_status = 'publish'
GROUP BY p.id
HAVING SUM(meta_value LIKE '%john%') > 0 AND SUM(meta_value LIKE '%smith%') > 0;

关于mysql - SQL 合并具有相同通配符值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25902013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com