MariaDB vs MySQL versions 版本兼容性比較表

版本兼容性比較表 Replication Compatibility

MySQL 移植 MariaDB 相容性可參考下表

Slave↓ Master→
MariaDB-5.5
MariaDB-10.0
MariaDB-10.1
MariaDB-10.2
MySQL-5.6
MySQL-5.7
MySQL-8.0

MariaDB-5.5
Ok
No
No
No
No
No
No

MariaDB-10.0
Ok
Ok

Ok

MariaDB-10.1
Ok
Ok
Ok

Ok

MariaDB-10.2
Ok
Ok
Ok
Ok
Ok
Ok

MySQL-5.6

X
X
X

MySQL-5.7

X
X
X

MySQL-8.0

X
X
X

MariaDB versus MySQL – Compatibility

[……]

Read more

MySQL 解決匯入錯誤 Variable ‘character_set_client’ can’t be set to the value of ‘NULL’

MySQL 匯入發生下列錯誤

Variable ‘character_set_client’ can’t be set to the value of ‘NULL’

今天再進行客戶資料庫移機的時候,從原本舊機器的phpMyAdmin匯出MySQL的sql檔,匯入新的客戶主機,再熟悉不過的匯出匯入動作,居然冒出了個錯誤,好吧!!遇到錯誤就來解決吧,這裡不討論造成原因,這時候不想知道什麼原因,估狗大神快教我怎麼解決,我想神聽到了。

用你爽的編輯器打開SQL檔,此例使用Notepad++

在文件最前端貼上下面這幾行:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;[......]

Read more

[mysql] 外鍵 Foreign Key 速查

當關聯父資料表的主鍵紀錄行被刪除或修改時,InnoDB 對子資料表中紀錄行的處理方式:
CASCADE – 會將有所關聯的紀錄行也會進行刪除或修改。
SET NULL –
會將有所關聯的紀錄行設定成 NULL
NO ACTION –
有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
RESTRICT –
 NO ACTION 相同。[……]

Read more

MIS WAMP手動安裝及設定教學 Apache2.4 + PHP7 for windows10

手動安裝 Apache2.4 + PHP7 for windows10

首先,我該選x64或x86安裝呢?

何謂 x64 和 x86,可閱讀下方網址文章,本篇不多做解釋
x86和x64到底有什麼差異?

注意 !!!

若安裝x64版本,PHP & Apache 都需要選擇x64版本,反之亦然

安裝 PHP7 for windows

PHP For Windows 官網

http://windows.php.net/

PHP For Windows 歷史版本 (官網)

本例下載 PHP 7.0 VC14 x64 Thread Safe

解壓縮至 PHP 的存放目錄
本例解壓縮至 C:php-7.0.10-Win32-VC14-x[……]

Read more

[SQL] MySQL to PostgreSQL 好痛轉移,SQL語法差異

換資料庫真的好機掰,會有一堆未知問題,見招拆招,紀錄於下

LIMIT OFFSET

/* MySQL */
SELECT * FROM abc WHERE status=1 ORDER BY create_time DESC LIMIT 0 , 10
/* PostgreSQL */
SELECT * FROM abc WHERE status=1 ORDER BY create_time DESC LIMIT 10 OFFSET 0

# UPDATE 不能加 ORDER BY and LIMIT
/* MySQL */
UPDATE abc SET aaa=1 WHERE id<=100 ORDER BY status DESC LIMIT 10

/* PostgreSQL */
/* 若有需求要用子句解決 */
UPDATE abc main SET aaa=1
FROM
 ( SELECT id FROM page_builder WHERE id<=100 ORDER BY status DESC LIMIT 10 ) sub
WHERE ma[……]

Read more

MySQL 常用資料型態

MySQL 資料庫的資料欄位型態可分為文字類型、數值類型、日期時間類型,與特殊類型,下面列出常用的欄位型態:
文字型態
適用於儲存文字資料的欄位型態,其中 VARCHAR 、 CHAR 必須指定文字長度 實際儲存的資料超過設定的文字長度,雖可儲存但超過的部份將被截斷。例如儲存文字「 How are you ? 」到文字長度設定為 10 的欄位,將只剩下「 How are yo 」,若設定過度的文字長度則會佔用儲存空間,建議視實際儲存的資料需求設定文字型態。
資料型態儲存位元說明VARCHAR (M)

1~255

非 固 定 長 度 字 元 的 資 料 型 態
例 如 儲 存 通 訊 地 址 。
CHAR (M)

1~255

固 定 長 度 字 元 的 資 料 型 態
例 如 儲 存 身 份 證 字 號 。
TINYTEXT

255

適 用 於 儲 存 255 字 元 以 內 的 資 料TEXT

65535

適 用 於 儲 存 較 多 字 元 的 資 料
例 如 訪 客 留 言 板 的 內 容
MEDIUMTEXT

1677215

適 用[……]

Read more

MySQL WHERE 等於 NULL 問題,=NULL會找不到的解決方案

/* 找不到 */
SELECT * FROM news WHERE class = NULL

/* 找不到 */
SELECT * FROM news WHERE class IN ( 0 , 1 , NULL )

/* 要這樣寫 */
SELECT * FROM news WHERE class IS NULL[……]

Read more

SQL GROUP BY SUBSTR 用分割字串來群組資料

有時候我們會用一定的規則來訂義產品編號
例如:

2014(年)+001(款號)+01(規格) = 
201400101(產品編號)
所以在列表中,其實我們是要顯示款列表,但不同規格其實還是同一款,大同小異,
此時我們會希望用款號來把相同款式的商品群組起來,秀一筆就好,GROUP BY可以搭配SUBSTR()來實現這效果,實際實作方式如下

product_id ( 產品編號欄 )
201400101
201400102
201400201
201400202
201400301
201400302
GROUP BY SUBSTR(product_id,5,3)

取出之產品編號 
201400101
201400201

201400301

參考
http://www.1keydata.com/tw/sql/sql-substring.html

[……]

Read more

SQL 繁體中文參考手冊 – 非常詳細 – 學SQL必備 – 教學必備

SQL 誰記得那麼多用法呀,當然要有一本參考手冊呀,

不管新手、老手都需要這玩意兒,快加入書籤吧
http://webdesign.kerthis.com/sql/

[……]

Read more

MySQL 自訂ORDER BY捱序或 ORDER BY 忽略

1. 只按日期排序,忽略年份
> select date, description from table_name order by month(date),dayofmonth(date);
注意:單純使用dayofyear來排序會導致錯誤,如2-29與非閏年的3-1日同等級

2. 排序點分式IP
> select ip from table_name order by inet_aton(ip);
或者在設計表時就使用int unsigned 來表示ip

3. 將某列中特定值排在最前
例如想把表中lulu的名字排在最前顯示,其他按字母排序
> select name from table_name order by if(name=’lulu’,0,1),name ;
也可以把if的條件根據需要換成相應的語句。

4. 將某列內容按照使用者自訂的順序排序
例如想把表中的名字按lulu,xixi,baba,mama的非常規順序排序輸出:
> select name from table_name order by field(name,’lulu’,’xixi’,’baba’,’ma[……]

Read more