0 IF (name -6ren">
gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:45:22 25 4
gpt4 key购买 nike

帮助创建搜索条件

SELECT *
FROM mlt_adr_city
WHERE name LIKE "Text%"
AND region_id = 59
AND id <> 0
IF (name = name, LIMIT 1, LIMIT 5)

值域名称可以重合。
如果值相同则输出一行,或者五行。
抱歉我英语不好

[从评论中复制:]

如果请求没有条件,其中记录的名称重复。例如,具有相同名称的 WHERE name LIKE "City1"将返回五行,但它们的 ID 将不同。

但是如果没有匹配则显示5条记录。

示例搜索 LIKE "City1%" 显示记录三个 City1,City1,City1。

例子2.搜索LIKE "City2%"显示记录三个City2, City2, City2_en, City2_rect, City2_les.

最佳答案

不,不可能像您在问题中那样有条件限制声明。

如果您使用的是存储过程,则可以将参数或局部变量作为您的限制值,如下所述:

How to make limit offset dynamic using only (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;

关于mysql - 搜索条件mysql IF(name=name,LIMIT 1,LIMIT 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13639503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com