我对以下几点感到失望:
我尝试使用SUBSTRING
,REGEXP
等。
我现在有一个简单的查询来选择最后四个字段的字符是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值。
答案 0 :(得分:0)
您的问题应该包含示例数据。理想情况下,你会在SQL Fiddle上做一个例子。
我最好的猜测是一年后还有其他角色。试试这个:
WHERE c.published = 1 AND cl.category_name like '%2014%'