我试图使用MySQL命令排除“excl”,如果它在字符串的开始处找到,并且使用“excl”命令之后发生的事情。如何命令MySQL结果,同时从命令标题中排除字符串
所以它会为了这样的:
标题名称
不含标题B NAME2
标题C名称
标题d名
但不是:
标题名称
标题C名称
标题d名
不含标题B NAME2
我试图使用MySQL命令排除“excl”,如果它在字符串的开始处找到,并且使用“excl”命令之后发生的事情。如何命令MySQL结果,同时从命令标题中排除字符串
所以它会为了这样的:
标题名称
不含标题B NAME2
标题C名称
标题d名
但不是:
标题名称
标题C名称
标题d名
不含标题B NAME2
你要告诉ORDER
条款,如果字符串与您要查找的文本开始,然后使用该字符串之后,是串。因此,就“ORDER
”过程而言,“不包括标题a”成为“标题a”。
SELECT title
FROM table_name
ORDER BY
IF (SUBSTRING(LOWER(title), 1, 5) = 'excl ',
SUBSTRING(title, 6),
title
)
编辑:误读的问题,我觉得行开始不包括应到最后,所以CASE需要使用substring(),就像在enobrev的答案中一样。
... ORDER BY CASE WHEN title_column LIKE 'excl%' THEN substring(title, 6) ELSE title_column END
我喜欢这个。很好,很干净。我想这两种解决方案在大型数据集上都很慢。 – enobrev 2011-01-23 12:39:41
这是有道理的,更好的,但它的工作原理,谢谢。我现在可以想到SUBSTRING可能派上用场的其他一些情况。 – Mint 2011-01-23 10:11:48