【问题标题】:mysql substr not working like phpmysql substr 不像 php 那样工作
【发布时间】:2013-04-09 17:26:21
【问题描述】:

请在使用查询时帮我解决我的查询 - 我只想减去几个字符,然后使用 % 找到匹配的 LIKE:

select * from `providers` WHERE `name` LIKE SUBSTR('telin',1,4)%

请让我知道我做错了什么,非常感谢任何形式的帮助!

【问题讨论】:

  • 'telin'的来源是什么?这是否来自 PHP 中的变量?
  • 是的,telin来自php

标签: mysql substr


【解决方案1】:

假设telin 是列名而不是文字字符串,它应该用反引号引起来。如果是文字串,那么显然没有必要从中提取子串。然而,我怀疑这是您在回显完整查询后粘贴到此处的 PHP 变量的结果,然后它被正确地单引号。

无论如何,您需要通过CONCAT()SUBSTR() 结果连接到'%'

SELECT * FROM `providers` WHERE `name` LIKE CONCAT(SUBSTR(`telin`,1,4), '%');

但更好的是使用LEFT() 比较每个字符的前 4 个字符:

SELECT * FROM `providers` WHERE LEFT(`name`, 4) = LEFT(`telin`,4);

【讨论】:

  • 这样的查询会创建一个临时表,因此它们不能很好地适应大量数据。只要您只处理数千行就可以了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多