正常寫法: 複製代碼 代碼如下: select * from table_name t where t.field1 in (1,2,3,4,...); 當在寫預存程序in裡面的列表用個傳入參數代入的時候,就需要用到如下方式: 主要用到find_in_set函數 複製代碼 代碼如下: select * from table_name t where find_in_set(t.field1,'1,2,3,4'); 當然還可以比較笨實的方法,就是組裝字串,然後執行: 複製代碼 代碼如下:
1. left函數, 對查詢欄位的字串內容進行截取,用法select left(content,50) as summary from article; 在這裡的意思是只查詢content列內容的前50個字元,在這裡漢字也只當作一個字元。2. right函數,與left函數剛好相反,它對內容從後面進行截取。3. upper函數,對查詢的內容中的小寫字母進行大寫處理。select upper(title) as title from article;4.
要查看當前是否已開啟事件調度器,可執行如下SQL:SHOW VARIABLES LIKE 'event_scheduler';或SELECT @@event_scheduler;或SHOW PROCESSLIST;若顯示:+-----------------+-------+| Variable_name | Value |+-----------------+-------+| event_scheduler | OFF |+----------
MySQL基礎知識第一期,如何遠端存取MySQL資料庫設定許可權方法總結,討論訪問單個資料庫,全部資料庫,指定使用者訪問,設定訪問密碼,指定訪問主機。1,設定訪問單個資料庫許可權複製代碼 代碼如下:mysql>grant all privileges on test.* to 'root'@'%';說明:設定使用者名稱為root,密碼為空白,可訪問資料庫test2,設定訪問全部資料庫許可權複製代碼 代碼如下:mysql>grant all privileges on *.* to '
查看event是否開啟複製代碼 代碼如下:show variables like '%sche%'; 將事件計劃開啟複製代碼 代碼如下:set global event_scheduler =1; 建立預存程序test 複製代碼 代碼如下:CREATE PROCEDURE test () BEGIN update examinfo SET endtime = now() WHERE id = 14; END; 建立event e_test複製代碼 代碼如下:create
公司資料中心計劃將海量資料做一次遷移,同時增加某時間欄位(原來是datatime類型,現在增加一個date類型),單表資料量達到6億多條記錄,資料是基於時間(月)做的partition由於比較忙,一直沒有總結,所以很細節的地方都記不清楚了,此處只是簡單總結下當時的情形,備忘亂打亂撞 最初接到任務,沒有明確的入手點,直接就是select * from db limit 10000,動態修改翻頁數量,通過控制台看耗時情況,慢複製代碼 代碼如下:SELECT IR_
1. 新增使用者複製代碼 代碼如下:mysql>insert into mysql.user(Host,User,Password) values("localhost","lionbule",password("hello1234"));mysql>flush privileges;2. 修改使用者密碼複製代碼 代碼如下:mysql>update mysql.user set password=password('new password') where
使用方式如下:複製代碼 代碼如下:mysql>load data local infile "D:/ab.txt" into table mytbl(name,age);使用上述的命令就可以將D:/ab.txt檔案的內容匯入到表mytbl中,其中name和age是表mytbl的欄位,對應ab.txt檔案中每行的資料。如果編譯安裝mysql時沒有指定–enable-local-infile,那麼在使用上述命令時會報如下錯誤:複製代碼 代碼如下:ERROR 1148 (42000): The
使用mysql 中的load 命令,講txt 檔案中的內容載入到資料庫表中,例如,建立table,名稱是user,一個欄位username;當前有db.txt檔案,內容是以空格分開的使用者名稱,例如:xiaowang xiaoliu zhangsan 將該檔案載入到資料表user中,使用命令即可: 複製代碼 代碼如下: load data local infile "/home/beaver/db" into table user lines terminated by ' ';
MySQL提供標準的SQL模式比對,以及一種基於象Unix公用程式如vi、grep和sed的擴充Regex模式比對的格式一、SQL模式SQL的模式比對允許你使用“_”匹配任何單個字元,而“%”匹配任意數目字元(包括零個字元)。在 MySQL中,SQL的模式預設是忽略大小寫。下面顯示一些例子。注意在你使用SQL模式時,你不能使用=或!=;而使用LIKE或NOT LIKE比較操作符。SELECT 欄位 FROM 表 WHERE 某欄位 Like
#!/bin/sh#code by scpman#功能:檢查並修複mysql資料庫表#將此指令碼加到定時中,指令碼執行時,等會讀庫,列出要修複的所有表,然後計時,開始修複#修複過程中將損壞的表記錄下來,修複完成後,將損壞的表,發郵件通知。fix_logs='/tmp/fix.log'user=''pass=''check_fix(){dblist=`/usr/bin/find /usr/dlm_db/mysql/ -type d | grep -vE
1,utf8_bin跟utf8_general_ci的區別 ci是 case insensitive, 即 "大小寫不敏感", a 和 A 會在字元判斷中會被當做一樣的; bin 是二進位, a 和 A 會別區別對待. 例如你運行: SELECT * FROM table WHERE txt = 'a' 那麼在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 則可以. 2,MyISAM 和 InnoDB
1、檢查並修改mysql的my.ini的設定檔複製代碼 代碼如下:default-character-set=utf82、建立資料庫是要指定字元集複製代碼 代碼如下:create database mydb default character set utf8 collate utf8_general_ci;3、建立資料表示也要指定字元集:出問題的命令: 複製代碼 代碼如下:CREATE TABLE IF NOT EXISTS `mydb` ( `username`
要使定時起作用 MySQL的常量GLOBAL event_scheduler必須為on或者是1 -- 查看是否開啟定時器 SHOW VARIABLES LIKE '%sche%'; -- 開啟定時器 0:off 1:on SET GLOBAL event_scheduler = 1; -- 建立事件 --每隔一秒自動調用e_test()預存程序 CREATE EVENT IF NOT EXISTS event_test ON SCHEDULE EVERY 1 SECOND ON