mysqlin()函数或find\ in\ set函数中允许的最大逗号分隔字符串

alen0pnh  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(261)

我一直在做一个项目,在这个项目中,我必须找到数据库表中存在的手机号码。用户应该上传一个手机号码列表,这个列表可以达到数千个手机号码。所以我主要关心的是,在我的sql的find\ in\ u set()函数中,移动电话号码的逗号分隔字符串允许使用多长时间。
实际上,我不想存储这些数字,我只想找出表中是否存在上传列表中的任何数字。所以我的查询如下: SELECT * FROM table WHERE mobile IN('uploaded comma saperated string of numbers') 或者 SELECT * FROM table WHERE FIND_IN_SET (mobile,'uploaded comma saperated string of numbers')

b5lpy0ml

b5lpy0ml1#

我想说这里的解决方法是不使用 FIND_IN_SET 但最好是这样:

WHERE number IN (num1, num2, ..., numN)

换言之,根据用户输入列表搜索每条记录的电话号码来表达您的查询。可以出现在一个 IN 条款仅限于 max_allowed_packet ,在正常情况下你可能不会超过这个。

clj7thdc

clj7thdc2#

我建议不要用逗号分隔的方式插入手机号码,而是在单行中插入单个手机号码。如果你这样做,它将是非常容易做搜索和删除操作。
只需上传用逗号分隔的手机号码列表,然后用 insert_bacth() 功能。

相关问题