gpt4 book ai didi

php - 使用数组值的 MySQL select 语句

转载 作者:行者123 更新时间:2023-11-29 23:44:41 24 4
gpt4 key购买 nike

我的数据库中有一个名为populations_served 的字段。它最多可以包含四个值 - 成人、青少年、 child 或老年人。例如:

第 1 行:成人

第二行:老年科

第三行:成人、 child

我的搜索表单具有以下选项的复选框:

<input name="populations[]" type="checkbox" id="populations[]" value="Adults" />
<input name="populations[]" type="checkbox" id="populations[]" value="Adolescents" />
<input name="populations[]" type="checkbox" id="populations[]" value="Children" />
<input name="populations[]" type="checkbox" id="populations[]" value="Geriatric" />

我希望我的 select 语句找到包含我已检查内容的任何行。如果我检查 Adult,那么结果将是 ROW1 和 ROW3。与 child 相同。如果我只单击“老年”,那么结果将是“ROW2”。这是我想出的方法,但似乎不起作用:

$populations = implode("', '",$_POST["populations"]);
$SQL2 = "SELECT * FROM membership WHERE populations_served IN ('$populations');";

这会导致:

SELECT * FROM membership WHERE populations_served IN ('Adults', 'Children');

但仅返回 ROW1,而不返回 ROW1 和 ROW3。如果我选择所有复选框,则返回仅包含老年病的行。我无法理解结果!

数据库的外观如下:

+---------+--------+----------------------+
| f_name | l_name | populations_served |
+---------+--------+----------------------+
| Anamika | Pandit | Adults |
| Mary | Anchor | Geriatric |
| Roger | Lewis | Adults, Children |
| Danny | Gibson | Geriatric |
+---------+--------+----------------------+

最佳答案

您需要使用正则表达式:

select *
from (
select 'Adults' as name union all
select 'Geriatric' union all
select 'Adults, Children'
) t
where name regexp 'Adults|Children'

SQLFiddle

关于php - 使用数组值的 MySQL select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26005763/

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