1. 程式人生 > >【mysql】-內建函式和預處理語句

【mysql】-內建函式和預處理語句

內建函式,如果能通過mysql內建函式對增刪改查的資料進行處理的話,就可以省去程式碼迴圈去一條一條的去設定了。

字串函式 函式註釋內容
concat(string2 [......]) 連線字串
lcase(string2) 轉換成小寫
ucase(string2) 轉換成大寫
length(string) string長度
ltrim(string2) 去除前端空格
rtrim(string2) 去除後端空格
repeat(string2,count) 重複count
replace(str,search_str,replace_str) 在str中用replace_str替換search_str
substring(str,position,[.length]) 從str的position開始,取length個字元
space(count) 生成count個空格

可以建立一個預處理語句,需要的時候,可以隨便修改該變數值,來通過該語句達到增刪改查的目的。

設定預處理函式:

mysql> prepare stmtl from "select * from test1 where id>?";
Query OK, 0 rows affected (0.00 sec)
Statement prepared

test1表資料內容:

mysql> select * from test1;
+----+-------+
| id | name  |
+----+-------+
|  1 | user1 |
|  2 | user2 |
|  3 | user3 |
|  4 | user4 |
|  5 | user5 |
|  6 | user6 |
+----+-------+
6 rows in set (0.01 sec)

設定變數值:

mysql> set @i=1;
Query OK, 0 rows affected (0.00 sec)

執行預處理函式:

mysql> execute stmtl using @i;
+----+-------+
| id | name  |
+----+-------+
|  2 | user2 |
|  3 | user3 |
|  4 | user4 |
|  5 | user5 |
|  6 | user6 |
+----+-------+
5 rows in set (0.00 sec)

改變變數的值:

mysql> set @i=5;
Query OK, 0 rows affected (0.00 sec)

再次執行預處理函式:

mysql> execute stmtl using @i;
+----+-------+
| id | name  |
+----+-------+
|  6 | user6 |
+----+-------+
1 row in set (0.00 sec)

這樣就可以避免每次都寫一樣的SQL語句。方便對資料庫的增刪改查操作。