Wildcards
如何一次在mysql中插入許多相似的記錄?
我們知道我們可以使用這個查詢一次插入多條記錄:
INSERT INTO `TABLE1` (`First`,`Last`) VALUES ('name1','surname1'), ('name2','surname2'), ('name3','surname3'), ('name4','surname4');
但是如果我們想添加 1000 條類似
(name*,surname*)
的記錄,我們是否必須寫下所有記錄,或者我們可以使用萬用字元之類的東西?還是有其他使用 mysql (phpmyadmin) 的解決方案?
不,您只能執行以下類型的插入:
INSERT INTO table (artist, album, track, length) VALUES ("$artist", "$album", "$track1", "$length1"), ("$artist", "$album", "$track2", "$length2"), ("$artist", "$album", "$track3", "$length3"), ("$artist", "$album", "$track4", "$length4"), ("$artist", "$album", "$track5", "$length5");
但是您始終可以編寫一個腳本,使用您想要的任何正則表達式生成上述內容。然後該腳本將負責將正則表達式擴展為適當的上述
INSERT ...
,然後執行它。正則表達式運算符
您可以嘗試提前生成模式,或者作為
VALUES
命令內容的一部分使用REGEXP
.
WHERE
您可以在這樣的子句中經常使用它:SELECT col1, col2, ..., coln FROM products WHERE sku REGEXP '^[A-Za-z]{2,4}-[0-9]{3}-[0-9]{2}$'
您可以在 MySQL 網站上的REGEXP 文件下閱讀有關此運算符的更多資訊,但我從未見過以這種方式使用它,也從未想過自己嘗試一下。我發現這個 SO Q&A 中提到的命令標題為:Adapting a Regex to work with MySQL。
參考