簡體   English   中英

搜索條件mysql IF(name = name,LIMIT 1,LIMIT 5)

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

不,你的問題中不可能有條件限制聲明。

如果您正在使用存儲過程,則可以將參數或局部變量作為限制值,如下所述:

如何僅使用(My)SQL使限制偏移動態化

如果你不想使用存儲過程,這里有一些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.

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