我試圖構造一個SQL查詢,查找多個不同的事情,我認爲類似的命令是實現這一像命令SQL
查詢行最好的辦法是:
where *field* like 'AB%'
它列出所有instaces在它開始AB表....
當我嘗試並添加多個實例,雖然我得到一個錯誤信息,我想要做的東西像下面這樣:
where *field* like ('AB%','CD%','EF%')
所以我得到的具體條目的字段以我提供的文本列表開頭
請問有人可以幫我解決這個問題嗎?
我試圖構造一個SQL查詢,查找多個不同的事情,我認爲類似的命令是實現這一像命令SQL
查詢行最好的辦法是:
where *field* like 'AB%'
它列出所有instaces在它開始AB表....
當我嘗試並添加多個實例,雖然我得到一個錯誤信息,我想要做的東西像下面這樣:
where *field* like ('AB%','CD%','EF%')
所以我得到的具體條目的字段以我提供的文本列表開頭
請問有人可以幫我解決這個問題嗎?
WHERE *field* LIKE 'AB%' OR *field* LIKE 'CD%' OR *field* LIKE 'EF%'
如果有100多個「喜歡」的例子有更有效的方法嗎? – 2012-07-30 13:41:18
你想OR
WHERE field LIKE 'AB%'
OR field LIKE 'CD%'
OR field LIKE 'EF%'
如果你使用的是其他WHERE
條款的標準,你需要使用圓括號括關閉或條款。
希望它可以幫助...
編輯:
您的評論後,你可以嘗試在你的WHERE
條款使用regular expressions,尤其是REGEXP_LIKE。
東西沿(未經測試)的線路:
SELECT *
FROM table
WHERE regexp_like(field, '^(AB|CD|EF).*$')
如果你想與單串做到這一點,嘗試使用REGEXP:
WHERE *field* REGEXP 'AB(.*)|CD(.*)|EF(.*)'
這是無效的Oracle語法。 – Ollie 2012-07-30 13:54:37
你可以使用instr函數。如果發現你想在字符串的第一個位置的子串,它將返回1:
where instr(field,'AB') = 1
OR instr(field,'CD') = 1
OR instr(field,'ED') = 1
粘貼一些實際的SQL代碼,請,那麼這將是我們更容易幫助你(編輯您的原職,並貼它在那裏)。 – Kjartan 2012-07-30 13:20:58
大多數數據庫都支持正則表達式。你使用什麼數據庫引擎? – martin 2012-07-30 13:39:58