【问题标题】:which is the appropriate sql query?哪个是合适的 sql 查询?
【发布时间】:2023-03-16 11:30:01
【问题描述】:

在产品代码上查询需求数据库。 我使用条形码阅读器并且代码是内部的,因此如果使用阅读器读取例如格式为“S181002 $ M”,那么它将与它一起存储。

问题是,如果用户“手动”输入代码,它只是“S181002”,所以用代码“S181002 $ M”在数据库中查找是行不通的。

什么是合适的 sql 查询?

最好使用 laravel,但可以满足任何要求。

我试过这个:

$articles = DB :: table ('articles') -> where ('code', 'LIKE', '%' $ code '%'..) -> get (); 

但显然“S181002 $ M”不是子字符串或与“S181002”相同的字符串

你能帮忙吗?

注意:我需要避免在 alamacenarlo 之前进行数据预处理,例如删除“$ M”,因为它会处理各种类型的代码。

谢谢!

【问题讨论】:

  • 既然你说代码在长度、字符和数字上有多种模式。当您需要阅读器时,至少后缀“$ M”是否始终相同?换句话说:是否总是在字符串末尾删除一个子字符串`$ M`(如果存在)就足够了?

标签: mysql sql laravel laravel-4


【解决方案1】:

如果你知道代码总是 7 个字符长,你可以这样做:

SELECT articles.* FROM articles WHERE code = SUBSTRING('S181002 $ M', 1, 7);

或者,如果您知道“$ M”将始终是代码后缀:

SELECT articles.* FROM articles WHERE code = REPLACE('S181002 $ M', ' $ M', '');

【讨论】:

  • 某些产品的问题,所以代码,其他只是数字或使用其他模式。而是寻求一种通用的方式,作为适合产品代码的正则表达式。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多