我一直在做一个项目,在这个项目中,我必须找到数据库表中存在的手机号码。用户应该上传一个手机号码列表,这个列表可以达到数千个手机号码。所以我主要关心的是,在我的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')
2条答案
按热度按时间b5lpy0ml1#
我想说这里的解决方法是不使用
FIND_IN_SET
但最好是这样:换言之,根据用户输入列表搜索每条记录的电话号码来表达您的查询。可以出现在一个
IN
条款仅限于max_allowed_packet
,在正常情况下你可能不会超过这个。clj7thdc2#
我建议不要用逗号分隔的方式插入手机号码,而是在单行中插入单个手机号码。如果你这样做,它将是非常容易做搜索和删除操作。
只需上传用逗号分隔的手机号码列表,然后用
insert_bacth()
功能。