2017-04-03 9 views
0

このクエリselect @@version limit 0,1リターン:MySQLのサブ際LIMIT

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

私は簡単な解決策を考え出した:

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;

、それは動作しますが、ちょうどに価値の周り()を設定します部分文字列と外側を置くその他すべて ;)

0

LIMITは数を制限するためのものですがの結果セットでは、文字列操作用ではありません。あなたはSUBSTRING_INDEX()機能を探しているようです。

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

出力

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