You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:32:08