此查询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
答案 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;
并且它可以工作,只需将()
围绕值设置为子串并放在其他所有内容之外
;)