首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql中搜索时不使用连字符

在mysql中搜索时不使用连字符
EN

Stack Overflow用户
提问于 2017-01-16 15:32:51
回答 2查看 379关注 0票数 1

Mysql数据库包含以下类型的值:

'AE01-1056 Ricoh Aficio''Ricoh AE01-1087 (AE01-1069)'

如果我是一个普通用户,我将以简单的文本搜索产品名称,如下所示

AE011056 ...但是没有找到结果。

我已经尝试过这个查询:

代码语言:javascript
复制
$q="SELECT * FROM mytable WHERE (p.product_name LIKE '$name%' OR c.category_name LIKE '$name%' OR pm.name LIKE '$name%')";

我应该在查询中做什么更改才能得到产品,因为我已经尝试了LIKE操作符&它对我不起作用。

EN

回答 2

Stack Overflow用户

发布于 2017-01-16 15:35:51

使用replace函数

代码语言:javascript
复制
$q="SELECT * FROM mytable 
WHERE (REPLACE(p.product_name,'-','') LIKE '%$name%' 
       OR REPLACE(c.category_name,'-','') LIKE '%$name%'
       OR REPLACE(pm.name ,'-','') LIKE '%$name%')";
票数 2
EN

Stack Overflow用户

发布于 2017-01-16 15:42:50

我认为只有两种方法:

1.操作搜索字符串如果你知道,用户经常在搜索一个代码,并且不使用必要的连字符,请检查搜索字符串是否符合给定的格式,如果没有,则插入下划线。

2.替换where语句中的所有连字符请参阅http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace

根据您的设置,解决方案一可能是性能更好的解决方案,因为您只需执行一个字符串操作而不是多个字符串操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41671455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档