顯示具有 MySQL 標籤的文章。 顯示所有文章
顯示具有 MySQL 標籤的文章。 顯示所有文章

2015年6月18日 星期四

MySQL TEXT 格式,存進的資料長度限制究竟是多少?

最近發現在 MySQL TEXT 格式的欄位存入一些比較長的資料時,讀出來的資料竟然會不完整,於是查了一下 MySQL TEXT 相關的格式長度列表,於是作出以下的整理:
  1. TINYTEXT: 256 bytes
  2. TEXT: 65,535 bytes => ~64kb
  3. MEDIUMTEXT: 16,777,215 bytes => ~16MB
  4. LONGTEXT: 4,294,967,295 bytes => ~4GB


參考資料: Maximum length for MYSQL type text

2014年9月6日 星期六

MySQL 刪除資料表中重複的資料並且建立 Unique key

有時候會忘了在第一時間在 table 建立 Unique key 而且也沒有在 server 端去做防止重複的資料 key in進去,就會導致資料表中有一堆重複的資料,這時候的作法大致可分為兩種,第一種最直接就是把所有資料抓出來去做重新排列篩選把 table 清空後再存回去,但之後如果有一樣的資料還是可以被 key 進資料庫;所以我通常都是用第二種方法,不但可以一個指令就可以把重複的資料清除,還可以幫資料表的某些欄位綁上 Unique key,如此一來就能避開再次輸入重複的資料啦! 語法如下:
  1. ALTER IGNORE TABLE `資料表名稱` ADD UNIQUE INDEX(`欄位1`, `欄位2`, ...);

2014年6月4日 星期三

MySQL 查詢資料表值為 NULL 的資料

我們都知道一般在查詢資料所下的語法大概會像是 SELECT * FROM user 而如果要篩選條件就在後面加上 WHERE name = 'Tim' 之類的語法,但若是今天我們要判斷某個欄位的值是否為 NULL,語法下 WHERE name=NULL 會發現執行結果不正確,原因是在資料庫中 NULL 是一個特別的值,因此要使用 IS NULL 或是 IS NOT NULL 來做判斷,如此一來執行結果就會正確了。

正確的範例語法如下:
SELECT * FROM user WHERE name IS NULL;

2014年5月9日 星期五

MySQL 取得某資料表之某個資料筆數

我們有時候可能只想知道某個 table 中跟某個 field 有相關的資料有幾筆,這時候如果把整個 row 都撈出來就太小題大作了(且會影響效能),因此可以透過下面要介紹的語法來算出資料筆數喔!