搜索条件mysql IF(名称=名称,限制1,限制5)
帮助创建搜索条件搜索条件mysql IF(名称=名称,限制1,限制5),mysql,Mysql,帮助创建搜索条件 SELECT * FROM mlt_adr_city WHERE name LIKE "Text%" AND region_id = 59 AND id <> 0 IF (name = name, LIMIT 1, LIMIT 5) 值字段名称不能重叠。如果值相同,则输出一行或五行。对不起,我英语不好 [摘自评论:] 如果请求没有条件,则返回重复记录的名称。例如,名称相同的City1将返回五行,但id不同 但如果没有匹配项,则显示五条记录 类似City1%显示
SELECT *
FROM mlt_adr_city
WHERE name LIKE "Text%"
AND region_id = 59
AND id <> 0
IF (name = name, LIMIT 1, LIMIT 5)
值字段名称不能重叠。如果值相同,则输出一行或五行。对不起,我英语不好
[摘自评论:]
如果请求没有条件,则返回重复记录的名称。例如,名称相同的City1将返回五行,但id不同
但如果没有匹配项,则显示五条记录
类似City1%显示的示例搜索记录了三个City1、City1、City1
例2。像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
也许你可以举一个例子,说明你要匹配的名称类型,以及你想要的输出类型。你想做什么,这与where条件不同?如果请求没有条件,则重复记录的名称。例如,名称相同的City1将返回五行,但id不同。但如果不匹配,则显示五条记录示例搜索(如City1%)显示三条记录City1、City1、City1谢谢,但这不是我想要的,我无法正确解释。我不知道分组。谢谢大家