mysql保留關鍵字導致的語法錯誤

在一個新的mysql環境執行原來的程序,提示語法錯誤,經查看發現環境的mysql版本是mysql8,groups一詞在mysql8.0.2起成了保留關鍵字,暫時用`groups`寫法代替,後續還是應該注意避免,這種坑洞也是防不勝防。

You have an error in your SQL syntax...

官方文件:https://dev.mysql.com/doc/refman/8.0/en/keywords.html

Mysql列轉行group_concat函數

MySQL中group_concat函數可以將分組的指定欄位合併成一行內容,用來作列轉行比較適合。

完整的語法如下:

group_concat([DISTINCT] 要連接的欄位 [Order BY ASC/DESC 排序欄位] [Separator '分隔符號'])

預設分隔符號為英文逗號

範例:

select id,group_concat(distinct name) from table group by id;  

需要注意的是合併後欄位長度有預設限制


參考:

HTTPS://嗚嗚嗚.ITeye.com/blog/號稱沒說過-555543

HTTP://嗚嗚嗚.媽咪code.com/info-detail-1389878.HTML

HTTPS://嗚嗚嗚.cn blog上.com/放入Anson-2016/怕/6911631.HTML

HTTPS://嗚嗚嗚.cn blog上.com/瀏覽器1214/怕/11202866.HTML

mysql連接資料庫localhost比127.0.0.1慢的問題

在php+mysql的開發過程中,連接資料庫的主機名稱填寫時,本機一般可以用localhost或127.0.0.1,實際應用過程中,Linux系統目前還沒發現過異常,但在Windows server系統中,有的時候寫localhost,網頁反應就會出現比較慢的情況,一般一頁都需要1秒以上,一步步對程式運行時間判斷,發現是mysql連線時候的問題,建立一個連線需要將近1秒,必然是有問題的,搜尋之,發現確實存在這個情況,很多程式設計師部落格都有反應,摘抄記錄如下:

HTTP://blog.斯納.com.才能/是/blog_6成本5啊76發0100一幅畫哦.HTML

最近發現程式反應時間有點慢,於是逐漸的排除,計算每段程式執行的時間,最後發現時間損耗都花在了連結資料庫上,資料庫連結也沒有什麼好的辦法,於是便放下它了。

隔天,我測試一下資料庫的遠端鏈接,發現我用IP訪問資料庫的執行時間很短要遠遠小於我在本地用localhost連接資料庫。於是便有了下面一段測驗:

解決mysql資料導入導出提示secure-file-priv option問題

Mysql資料庫從檔案匯入或匯出到文件,提示The MySQL server is running with the --secure-file-priv option so it cannot execute this statement ,原因及解決方法如下:

一些版本的mysql對透過檔案導入導出作了限制,預設不允許,

查看配置,執行mysql指令

SHOW VARIABLES LIKE "secure_file_priv";

如果value值為null,則為禁止,如果有資料夾目錄,則只允許改目錄下檔案(測試子目錄也不行),如果為空,則不限制目錄;

修改配置可修改mysql配置文件,查看是否有

secure_file_priv =

這樣一行內容,如果沒有,手動添加,

secure_file_priv = /home

表示限制為/home資料夾

訂閱@標題