SQL中不同情況下反斜線到底要寫幾個

某段SQL中需要去解析一個欄位中的json字串,然而,裡邊的漢字也是編碼後的,存的格式類似

u6e38u620f

SQL語句理論上如下

get_json_object(extends,'$.cate')='u6e38u620f'

但是呢,實際系統執行中涉及到層層編譯過程,反斜線到底該寫幾個才能select出正確的結果呢?

實驗結論如下:

spark-hive>

情況下,輸入兩個反斜線即可

spark-hive> ……get_json_object(extends,'$.cate')='\u6e38\u620f'……

如果使用

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連接資料庫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資料夾

sql中的多行合併函數collect_set、collect_list 、concat_ws

從資料庫取N個字段,然後組合到一起用“,”分割顯示,起初想到用CONCAT()來處理,好是麻煩,沒想到在手冊裡居然有提到CONCAT_WS(),非常好用。

CONCAT_WS(separator, str1, str2,...)

它是一個特殊形式的CONCAT(),第一個參數剩餘參數間的分隔符,分隔符可以是與剩餘參數一樣的字串,如果分隔符號是NULL,則回傳值也會為NULL,這個函數會跳過分隔符號參數後的任何NULL 和空字串,分隔符號將會被加到被連接的字串之間。

簡單例子如下:

訂閱@標題