子串在MySQL查询的WHERE条件中失败

时间:2014-06-13 12:26:08

标签: mysql sql

我对以下几点感到失望: 我尝试使用SUBSTRINGREGEXP等。 我现在有一个简单的查询来选择最后四个字段的字符是2014年:

SELECT c.`virtuemart_category_id`, cl.`category_name`, cc.`category_parent_id`, cc.`category_child_id`
FROM `#__virtuemart_categories` AS c
JOIN `#__virtuemart_categories_nl_nl` AS cl using (`virtuemart_category_id`)
JOIN `#__virtuemart_category_categories` AS cc ON cl.`virtuemart_category_id` = cc.`category_child_id`
WHERE c.published = "1" AND RIGHT(cl.`category_name`,4) = "2014"
ORDER BY c.`ordering`

也尝试过:

(substring(cl.`category_name`,-4) = "2014")

返回零结果(可能是语法错误,但我看不到错误)。

我最终想要的是选择最后四个字符不是数字。字段包含CHAR值。

1 个答案:

答案 0 :(得分:0)

您的问题应该包含示例数据。理想情况下,你会在SQL Fiddle上做一个例子。

我最好的猜测是一年后还有其他角色。试试这个:

WHERE c.published = 1 AND cl.category_name like '%2014%'