簡體   English   中英

SQL選擇查詢所在列LIKE

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM