gpt4 book ai didi

PHP、MySQL : mysql substitute for php in_array function

转载 作者:可可西里 更新时间:2023-11-01 07:49:20 26 4
gpt4 key购买 nike

假设我有一个数组并且我想检查某个元素是否是该数组的一部分,我可以继续使用 in_array(needle, haystack) 来确定结果。为了我的目的,我正在尝试查看与此等效的 PHP。现在你可能对我有一个即时的答案,你可能会想说“使用 IN”。是的,我可以使用 IN,但这并不能获取所需的结果。让我用一个例子来解释:

我在数据库表中有一个名为“宠物”的列。对于记录,它有一个值:Cat, dog, Camel(是的,列数据是逗号分隔值)。假设这一行的 id 为 1。

现在我有一个表单,我可以在其中输入表单输入中的值,并使用该值检查数据库中的值。假设我在表单输入中输入以下逗号分隔值:CAT, camel(是的,CAT 是大写的,而且是有意为之,因为有些用户倾向于这样输入)。

现在,当我在表单输入中输入上述信息并提交时,我可以收集发布的信息并使用以下查询:

$search = $_POST['pets'];
$sql = "SELECT id FROM table WHERE pets IN ('$search') ";
  1. 上面的查询没有获取数据库中已经存在的行(还记得宠物列的值是 Cat, dog, Camel 的记录吗?)。我正在尝试让记录充当超集,并将表单输入中的值作为子集。所以在这种情况下,我希望 id 值显示为列中存在的值,但这并没有发生。

  2. 现在假设我只输入 CAT 作为表单输入并执行搜索,它应该会显示 ID 1 行。

  3. 现在假设我只输入 camel, cAT 作为表单输入并执行搜索,它应该会显示 ID 1 行。

我怎样才能实现上述目标?

谢谢。

最佳答案

您要找的函数是find_in_set :

 select * from ... where find_in_set($word, pets)

对于多词查询,您需要测试每个词和 AND(或 OR)测试:

  where find_in_set($word1, pets) AND find_in_set($word2, pets) etc 

关于PHP、MySQL : mysql substitute for php in_array function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981280/

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