2012-11-18 54 views
2

我使用PDO直接使用INSERT INTO tbl1 (key, val) VALUES (UUID(), :value)在MySQL產生UUID。我沒有任何想法如何刪除這些- 在MySQL側(虛線),在PHP端,我可以使用str_replace()簡單地將其刪除。刪除破折號產生直接在MySQL

回答

0

得到十進制值放置到某個整數字段中使用

UNHEX(REPLACE(UUID(),'-','')) 
+0

爲什麼我需要'UNHEX'呢?我的列類型只是'VARCHAR' – fishcracker

+0

如果是的話 - 不需要 – triclosan

+0

如果你使用UUID作爲PRIMARY KEY,那麼你需要將它存儲爲'BINARY(16)'而不是'VARCHAR( 32)'。當涉及到數十個數千個小數據集時,它將真正提高您的性能。要做到這一點,你需要去掉破折號並取消它,就像在這個例子中一樣。您可以從percona博客[這裏](https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/)瞭解更多關於UUID的主鍵。 – adambullmer

6
REPLACE(UUID(),'-','') 

你不需要UNHEX,只是簡單地替換連字符。