gpt4 book ai didi

php - 需要在一个字段中搜索两个值 Mysql

转载 作者:行者123 更新时间:2023-11-29 01:41:30 25 4
gpt4 key购买 nike

我需要在同一字段中搜索两个值。

╔════╦════════════╦══════════════╗
║ ID ║ Meta_key ║ Meta_value ║
╠════╬════════════╬══════════════╣
║ 1 ║ first_name ║ pritesh ║
║ 2 ║ last_name ║ mahajan ║
║ 3 ║ first_name ║ ritesh ║
║ 4 ║ last_name ║ jain ║
║ 5 ║ first_name ║ john ║
║ 6 ║ last_name ║ a ║
║ 7 ║ first_name ║ Mambo ║
║ 8 ║ last_name ║ Nombo ║
╚════╩════════════╩══════════════╝

这是我的表格,我想搜索所有的名字和姓氏。下面是我的查询,但这并没有返回我想要的。

SELECT * 
FROM `wp_usermeta`
WHERE `meta_key` = 'last_name'
AND `meta_value` LIKE '%mahajan%'
AND `meta_key` = 'first_name'
AND `meta_value` LIKE '%a%';

最佳答案

给你

SQL Fiddle

查询:

SELECT first_name, last_name
FROM
(
(
SELECT meta_value AS first_name, id AS a_id
FROM wp_usermeta
WHERE meta_name = 'first_name'
) as a
)
JOIN
(
(
SELECT meta_value AS last_name, id AS b_id
FROM wp_usermeta
WHERE meta_name = 'last_name'
) as b
)
WHERE a_id = b_id-1

Results :

| FIRST_NAME | LAST_NAME |
|------------|-----------|
| pritesh | mahajan |
| ritesh | jain |
| john | a |
| Mambo | Nombo |

有了这个,您可以使用两个虚拟列 first_namelast_name 轻松搜索。您只需要向 WHERE 子句添加其他条件。像这样:

  WHERE a_id = b_id-1
AND first_name LIKE "%tesh%"
AND last_name LIKE "%jai%"

会产生

| FIRST_NAME | LAST_NAME |
|------------|-----------|
| ritesh | jain |

注意

我在这里(根据您的示例数据)做出的一个重要假设是,相关 first_namelast_name 总是会有连续的 id。 (表中的两个连续记录)。

关于php - 需要在一个字段中搜索两个值 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20260825/

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