【发布时间】:2017-05-07 19:25:46
【问题描述】:
大家。我在 IF 构造中遇到 LIKE 问题。我有以下查询 SQL:
SELECT DISTINCT a.ID_SPORTSMAN, a.NAME, a.SURNAME, a.SEX, a.CLUB, b.RESULTS
FROM `sportsman` AS `a`
JOIN `results` AS `b`
ON a.ID_SPORTSMAN = b.ID_SPORTSMAN AND b.ID_DISCIPLINE = '1' ORDER BY b.RESULTS;
IF (b.RESULTS LIKE '`%')
THEN
ASC LIMIT 10
ELSE
DESC LIMIT 10
END IF
我使用 MariaDB。在 phpmyadmin 中返回这个错误:
错误
静态分析:
在分析过程中发现了 1 个错误。
Unrecognized statement type. (near "IF" at position 0)SQL 查询:
IF (b.REZULTAT LIKE '`%') THEN ASC LIMIT 10 ELSE DESC LIMIT 10 END IF
MySQL 说:文档 1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解要使用的正确语法 在第 3 行的“ASC LIMIT 10 ELSE DESC LIMIT 10 END IF”附近
怎么了?
【问题讨论】:
-
你的逻辑甚至没有意义。你想做什么?
-
忽略语法错误,你想用
b.RESULTS LIKE '%'实现什么?? -
我需要对搜索结果进行排序。如果在“`”字符中找到,它将使用 ASC,如果不是 DESC
-
在列结果中,我在许多学科(跳跃、冲刺等)中都有成绩运动员。
-
@NinjaMaker - 请添加一些示例数据和预期结果..