gpt4 book ai didi

mysql - find_in_set 和 locate 之间的区别

转载 作者:可可西里 更新时间:2023-11-01 06:42:28 25 4
gpt4 key购买 nike

我的数据库中有产品表

产品表结构:

product_id     |     testid
------------------------------------
1 11,12,13
2 2,4

下面是我的FIND_IN_SET查询:

SELECT product_id FROM product
WHERE FIND_IN_SET(3, testid) > 0;

输出

0

下面是我的LOCATE查询:

 SELECT product_id FROM product
WHERE LOCATE(3, testid) > 0;

输出

1

我的问题

FIND_IN_SETLOCATE 之间有什么区别,在中查找 id 的最佳方法是什么

最佳答案

用简单的技术术语(PHP术语)来说,find_in_set就像PHP的substring函数。它将接受一个子字符串和一个字符串作为参数,如果在字符串中找到子字符串,则返回 1。如果未找到子字符串,它将返回 0。

相反,LOCATE() 返回字符串在字符串中第一次出现的位置。它接受一个子字符串和一个字符串作为参数。

我认为在您的用例中,您应该选择 find_in_set。因为这是一个。如果在一行中找到 3,find_in_set 将返回 1,其中 locate 将在字符串中首次出现 3,即使它找到 31 或 300 作为第一个元素。

关于mysql - find_in_set 和 locate 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40582377/

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