2016-06-13 20 views
0

我在PostgreSQL中非常新,希望能夠從表中刪除行,如果特定列以特定模式啓動。如果列以特定模式開頭,則刪除PostgreSQL中的行

例如,

我有一個reference柱,其是一種時間標記(YYMMDDHHMM)的。如果引用列以16 ********開頭,那麼我希望它被刪除。

到目前爲止,我知道如何刪除列,如果整個參考是已知的。例如:

DELETE FROM my_tbl WHERE name='test1' AND ref_no=1601010000; 

但是,我需要更改它,以便該條件只指定參考編號的前兩位數字。

回答

1

閱讀LIKE操作:https://www.postgresql.org/docs/8.3/static/functions-matching.html

使用此命令來刪除行:

DELETE FROM my_tbl WHERE reference LIKE '16%' 

從表中刪除行前,先檢查是否刪除條件確實有效的使用它預期在正常的SELECT語句中:

SELECT * FROM my_tbl WHERE reference LIKE '16%' 

如果reference列不varchar類型,但是例如int,您需要先CONVER(投)它以這種方式varchar數據類型:

SELECT * FROM my_tbl WHERE reference::varchar LIKE '16%' 
DELETE FROM my_tbl WHERE reference::varchar LIKE '16%' 
1

嘗試「喜歡」操作,它允許你做模式匹配。

DELETE FROM my_tbl WHERE name like '%test%'; 

'%'字符是通配符。上面的行應刪除名稱包含字符串'test'的每一列。

更多的信息在這裏:pattern matching

相關問題