gpt4 book ai didi

php - 在 SQL 字段中搜索 WHERE LIKE %$user_id%

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:36 26 4
gpt4 key购买 nike

我有一个小问题。

我的表格如下:

tbl_groups

id (int) | teacher_id (int) | student_ids (text)
------------------------------------------------
1 | 14 | 2015,2016,2017
2 | 35 | 15,16,17
3 | 14 | 631

student_ids 将使用 implode() 由 PHP 数组填充。

但是,当我执行以下查询以通过学生 ID 搜索组 ID 时:

SELECT `id` FROM `tbl_groups` WHERE `student_ids` LIKE '%15%'

我返回了第 1 行和第 2 行。发生这种情况是因为 student_ids 将搜索“15”,而“2015”包含“15”,因此它也会返回它。

我怎样才能避免这种情况?

最佳答案

您可以像这样使用 FIND_in_SET:。如果它在集合中,它将返回一个 > 0 的值。

SELECT `id` FROM `tbl_groups` 
WHERE FIND_IN_SET('15',`student_ids`);

样本

mysql> SELECT  FIND_IN_SET('15','15,16,17');
+------------------------------+
| FIND_IN_SET('15','15,16,17') |
+------------------------------+
| 1 |
+------------------------------+
1 row in set (0,00 sec)

mysql> SELECT FIND_IN_SET('1','15,16,17');
+-----------------------------+
| FIND_IN_SET('1','15,16,17') |
+-----------------------------+
| 0 |
+-----------------------------+
1 row in set (0,00 sec)

mysql> SELECT FIND_IN_SET('17','15,16,17');
+------------------------------+
| FIND_IN_SET('17','15,16,17') |
+------------------------------+
| 3 |
+------------------------------+
1 row in set (0,00 sec)

mysql>

关于php - 在 SQL 字段中搜索 WHERE LIKE %$user_id%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43087846/

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