[英]SQL select query where column LIKE
我有一個包含域名產品的表,我需要能夠根據域名匹配選擇正確的產品。
例如,如果域名是google.co.uk
,則應返回Domain Name Purchase (.co.uk)
產品,但是如果域名是google.uk
,則應返回Domain Name Purchase (.uk)
當它們相似時,如何確保選擇正確的產品?
我已經嘗試過以下查詢:
SELECT * FROM `prices` WHERE 'google.co.uk' like CONCAT(product, '%')
我也嘗試過:
SELECT * FROM `prices` WHERE product LIKE '%google.co.uk%'
第二個查詢工作正常。 但是,如果查詢正在搜索與.uk
的匹配項,它還將返回與.co.uk
匹配的產品。
根據我的理解,您正在嘗試使用字符串分別使用co.uk
和.uk
查找兩個單獨的結果集。
SELECT * FROM `prices` WHERE product LIKE '%.co.uk%'
應該給您匹配.co.uk
結果
SELECT * FROM `prices` WHERE product LIKE '%.uk%' and product NOT LIKE '%.co.uk%'
只會為您提供與.uk
匹配的結果,但不包括.co.uk
。
一個建議是謹慎執行此操作,並在將來考慮您的dB設計
完全合格的域名可以由任何文本組成,並且可以根據給定的准則采用任何格式,您可能需要考慮將名稱與限定符分開,例如co.uk分成單獨的字段
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.