[英]Search condition mysql IF (name = name, LIMIT 1, LIMIT 5)
幫助創建搜索條件
SELECT *
FROM mlt_adr_city
WHERE name LIKE "Text%"
AND region_id = 59
AND id <> 0
IF (name = name, LIMIT 1, LIMIT 5)
值字段名稱可以巧合。
如果值是相同的輸出單行,或五。
對不起我英文不好
[從評論中復制:]
如果請求沒有條件,則重復記錄的名稱。 例如WHERE名稱LIKE“City1”具有相同的名稱將返回五行但id將是不同的。
但如果沒有匹配則顯示五條記錄。
示例搜索LIKE "City1%"
顯示記錄三個City1,City1,City1。
示例2.搜索LIKE "City2%"
顯示記錄三個City2,City2,City2_en,City2_rect,City2_les。
不,你的問題中不可能有條件限制聲明。
如果您正在使用存儲過程,則可以將參數或局部變量作為限制值,如下所述:
如果你不想使用存儲過程,這里有一些sql如果有一個確切的名字匹配將返回一行,如果有一個部分名稱匹配則返回5行:
SELECT * FROM mlt_adr_city
WHERE
name = 'Text'
AND region_id = 59
AND id <> 0
LIMIT 1
UNION
SELECT * FROM mlt_adr_city
WHERE
name like 'Text%'
AND region_id = 59
AND id <> 0
AND NOT EXISTS (SELECT 1 FROM mlt_adr_city WHERE name = 'Text' AND region_id = 59 AND id <> 0)
LIMIT 5;
例
SELECT * FROM mlt_adr_city WHERE name LIKE "Text%" AND region_id = 59 AND id <> 0 GROUP BY name LIMIT 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.