MySQL 變數 、rownum 、 一行拆多行..小知識點

maohaiqing0304發表於2016-05-03


標題:  MySQL 變數 、rownum 、 一行拆多行..小知識點 

作者:lōττéry©版權所有[文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任.]


變數:
mysql> select @host:=host from mysql.user where host!='localhost';
+----------------+
| @host:=host   |
+----------------+
| 127.0.0.1    |      --> set @host:='127.0.0.1';
| ::1        |      --> set @host:='::1'; 
| wonhigh-test16 |      --> set @host:='wonhigh-test16';  
+----------------+
mysql> select @host;     ---查詢時只會取最後一行....不會是自己想的3行都顯示;
+---------------+
| @host       |
+----------------+
| wonhigh-test16 |
+----------------+ 
mysql> 

rownum:
mysql> select host,@rownum:=@rownum+1 AS rownum  from mysql.user,(SELECT @rownum:=0) r where host!='localhost';
+-----------------+--------------+
| host        | rownum     |
+-----------------+--------------+
| 127.0.0.1     |    1    |
| ::1         |    2    |
| wonhigh-test16  |    3    |   
+------------------+------------+
mysql> 
或者
set @rownum:=0;
select host,@rownum:=@rownum+1 AS rownum  from mysql.user where host!='localhost';


一行拆多行:
mysql>select @host:=GROUP_CONCAT(host) host1 from mysql.user where host!='localhost';  
+---------------------------------+
| host1                 |
+--------------------------------+
| 127.0.0.1,::1,wonhigh-test16  |
+---------------------------------+ 
mysql>
mysql> SELECT  substring_index(substring_index(a.host1, ',', b.id),',' ,-1 ) as host1_,b.id
            FROM (select @host:=GROUP_CONCAT(host) host1 from mysql.user where host!='localhost') a
             JOIN  (select 1 id union all select 2 union all select 3)  b
            ON b.id<= (length(a.host1) - length(REPLACE(a.host1, ',', '')) + 1) order by b.id;
+-------------------+---------------+
| host1_       |     id    |
+------------------+-----------------+
| 127.0.0.1     |    1     |
| ::1         |    2     |
| wonhigh-test16 |     3     |
+-----------------+----------------+ 
mysql> 

 
 【源於本人筆記】 若有書寫錯誤,表達錯誤,請指正... 


此條目發表在 MySQL分類目錄。將固定連線加入收藏夾。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-2092790/,如需轉載,請註明出處,否則將追究法律責任。

相關文章