gpt4 book ai didi

php - mysql 通过搜索关键字的每一位数字进行搜索查询

转载 作者:行者123 更新时间:2023-11-29 10:57:35 24 4
gpt4 key购买 nike

我的数据库中有一个数字

    88746
65654
78655
67856
09958
55640

搜索时我需要出去

'786'表示搜索键为786

    search result        
88746
78655
67856

如果在该数字组中出现任何 7 8 6,则输出条件意味着如果我搜索 5,即搜索键为 5,那么我们需要显示出现数字 5 的所有行。示例关键字 is 5 输出为 65654,78655,67856,09958,55640 表示数字 5 出现在所有该组数字中

我需要一个 mysql 查询来应对这个挑战

我尝试了一个查询

select * from plates where number LIKE %786%

--------
number |
------ |
88746 |
65654 |
78655 |
67856 |
09958 |

输出

        number |
------ |
88746 |
78655 |
67856 |

最佳答案

您必须检查每个单独的字符是否是较大的数字。

SELECT * FROM plates
WHERE number LIKE '%7%'
AND number LIKE '%8%'
AND number LIKE '%6%'

如果您的搜索输入包含或多或少的字符,您必须更改查询。我建议你有某种模板字符串 "number like '%{$i}%'" 并使用 $i top 将数字放入其中,然后附加将其添加到现有查询。

示例:
搜索输入为8765。

$query = "SELECT * FROM plates WHERE ";
$pattern = "number LIKE '%%%s%%' ";
$input = "8765";
$c = strlen($input); // 8765 returns 4, 456 returns 3 etc.
for ($i = 0; $i < $c; $i++) {
$pattern2 = "";
$pattern2 = sprintf($pattern, $input[$i]);
if ($i < ($c - 1)) { // the last LIKE statement should not have AND
$pattern2 .= "AND ";
}
$query .= $pattern2;
}
echo $query // SELECT * FROM plates WHERE number LIKE '%8%' AND number LIKE '%7%' AND number LIKE '%6%' AND number LIKE '%5%'

关于php - mysql 通过搜索关键字的每一位数字进行搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42802085/

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