MySQL RLIKE匹配分号包裹ID字段无结果问题求助
解决MySQL RLIKE匹配
;1;无结果的问题 可能的原因及对应解决方法:
确认字段类型与实际数据
先检查table_contacts的id字段是否为字符串类型(如VARCHAR/CHAR),如果是数值类型(如INT),存储的是纯数字,不可能匹配到;1;这种带符号的字符串。同时执行以下SQL确认数据库中确实存在目标数据:SELECT id FROM table_contacts WHERE id LIKE '%;1;%';如果这条语句也无结果,说明数据库里没有包含
;1;的记录,需要检查数据来源。简化匹配逻辑(无需正则)
如果只是匹配包含;1;的子串,用LIKE比RLIKE更高效且不易出错,修改代码为:search = f";{column_value};" "SELECT * FROM table_contacts WHERE id LIKE %s", [f"%{search}%"]正则匹配的正确验证
若坚持使用RLIKE,分号在MySQL正则中是普通字符,无需转义,直接用以下写法即可:search = f";{column_value};" "SELECT * FROM table_contacts WHERE id RLIKE %s", [search]若仍无结果,建议直接在MySQL客户端执行以下语句测试:
SELECT * FROM table_contacts WHERE id RLIKE ';1;';若客户端执行有结果,说明代码中参数绑定可能存在问题,检查
column_value是否确实为1,以及字符串拼接是否正确。
内容的提问来源于stack exchange,提问作者Nico44044
相关产品推荐
相关产品推荐

