当LIMIT时,MySQL子串

时间:2017-04-03 22:06:52

标签: mysql

此查询select @@version limit 0,1返回:

 5.6.30-1  

我可以在没有LIMIT的情况下进行子串:

select substring(@@version,1,1);

返回:

5

我怎样才能做到这一点?

select substring((@@version limit 0,1),1,1);

我希望得到5我需要这个来处理存在许多列的情况,但下面的查询会返回错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 0,1),1,1)' at line 1

2 个答案:

答案 0 :(得分:0)

LIMIT用于限制结果集中的的数量,而不是用于字符串操作。看起来你正在寻找SUBSTRING_INDEX()功能。

SELECT SUBSTRING_INDEX(@@version, '.', 1) major;

输出

+-------+
| major |
+-------+
| 5     |
+-------+

答案 1 :(得分:0)

我提出了一个简单的解决方案:

select 5 = substring(@@version,1,1) limit 0,1;

select 'A' = substring(table_name,1,1) from information_schema.tables where table_schema=database () limit 0,1;

并且它可以工作,只需将()围绕值设置为子串并放在其他所有内容之外 ;)