SQL通配符查询失效问题:为何shop*无法匹配shopmeal?
通配符查询出错的原因及解决方法
你的问题核心是运算符使用错误:
=是精确匹配运算符,不管你写'shop*'还是'shop%',它都会把整个字符串当作完整值去匹配,自然找不到以shop开头的记录。- 要使用通配符做模糊匹配,必须搭配
LIKE运算符,而不是=。
正确的查询语句应该是:
SELECT * FROM dates WHERE user_id = '1891128461' AND date1 LIKE 'shop%';
补充说明:
- 多数主流数据库(如MySQL、PostgreSQL)用
%表示零个或多个任意字符,_表示单个任意字符;部分数据库可能支持*作为通配符,但无论用哪种通配符,都必须用LIKE而非=来触发模糊匹配逻辑。你之前用shop%没生效,就是因为没替换=为LIKE。
内容的提问来源于stack exchange,提问作者ant
相关产品推荐
相关产品推荐

