mysql substr 不像 php 那样工作

标签 mysql substr

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

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

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

最佳答案

假设 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);

关于mysql substr 不像 php 那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15908498/

相关文章:

php - 将多个文件上传到新创建的目录

php - 如何通过在php中按时间顺序插入来跟踪mysql数据库表条目

PHP PDO MySQL 不输出结果但加载其余页面?

mysql - 通过单个查询获取表数据

mysql - 基于两个数字的百分比变化,总数未知(MySQL)

MYSQL COMPARE+DATETIME 与 SUBSTR?

r - 尝试从 R 中的基因序列返回指定数量的字符

javascript - 如何使用带有特殊 unicode 字符的子字符串?

r - 获取 R 中的第一个非零数字,类似于 Mathematica

C++ - 将用逗号分隔的用户输入字符串存储到 vector 中