Wildcards

如何一次在mysql中插入許多相似的記錄?

  • June 10, 2014

我們知道我們可以使用這個查詢一次插入多條記錄:

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

參考

引用自:https://unix.stackexchange.com/questions/134011