1. 程式人生 > >一些SQL操作(收集)

一些SQL操作(收集)

nod 取數 語句 into emp bmi .html urn com

1. GROUP_CONCAT

例如:數據如下

+----------+----+--------------------------+
| locus | id | journal |
+----------+----+--------------------------+
| AB086827 | 1 | Unpublished |
| AB086827 | 2 | Submitted (20-JUN-2002) |
| AF040764 | 23 | Unpublished |
| AF040764 | 24 | Submitted (31-DEC-1997) |
+----------+----+--------------------------+

語句 SELECT locus, GROUP_CONCAT(id) FROM info WHERE locus IN(‘AB086827‘,‘AF040764‘) GROUP BY locus; 的返回結果為

+----------+------------------+
| locus | GROUP_CONCAT(id) |
+----------+------------------+
| AB086827 | 1,2 |
| AF040764 | 23,24 |
+----------+------------------+

2. FIND_IN_SET(str,strlist)

函數

功能:查詢字段 (strlist) 中包含(str)的結果,返回結果為null或記錄

參數:1) str 要查詢的字符串(可以是個字段名)

2) strlist 字段名 參數以 ”,” 分隔 如 (1, 2, 6, 8)

示例:1) SELECT FIND_IN_SET(‘b‘, ‘a,b,c,d‘); // 返回值為2,即第2個值

2) SELECT * FROM t_areainfo WHERE FIND_IN_SET(id,strlist); // 輸出表中find_in_set返回的哪些記錄

3. 數組 函數:

implode() ---把數組轉換成字符串
explode() ---把字符串轉換成數組

4. SELECT INTO 語法

1) 語句從一個表中選取數據,然後把數據插入另一個表中。

SELECT *

INTO new_table_name [IN externaldatabase]

FROM old_tablename

2) 選擇的結果處理後存入變量

SELECT group_concat(id) INTO sTempChd FROM treeNodes where

FIND_IN_SET(pid, sTempChd) > 0;

# 對於所有sTempChd中的父節點,找出其子節點,並將它們串接,存入STempChd

5. SQL將查詢結果插入到另一個表的三種情況

1)如果要插入目標表不存在:

select * into 目標表 from 表 where ...

2)如果要插入目標表已經存在:

insert into 目的表 select * from 表 where 條件

3)如果是跨數據庫操作的話: 怎麽把A數據庫的atable表所查詢的東西,全部插入到B 數據庫的btable表中

select * into B.btable from A.atable where ..

一些SQL操作(收集)