如果char匹配,Mysql从字符串中删除最后2个字符

时间:2012-04-14 02:42:04

标签: php mysql sql select

我的一些行中有一些不正确的数据,因此我无法准确搜索。

我的category_name列下有值,如下所示:

category_name

interior--
exterior
interior

由于某些类别名称末尾的--,我无法获得特定类别的确切数量

我正在使用以下查询

select count(id) from designs where category_name='interior'

如何在where子句

中匹配时忽略--

4 个答案:

答案 0 :(得分:2)

Trim使用TRIM()函数从值开始--,如下所示:

SELECT count(id) FROM designs WHERE TRIM(TRAILING '--' FROM category_name)='interior'

答案 1 :(得分:0)

或者您可以使用LIKE仅搜索内部。我想你需要这样做。

select count(id) from designs where category_name LIKE 'interior'

希望这能解决您的问题

答案 2 :(得分:0)

要在字段中的任何位置找到字符串“ - ”并删除前导和尾随空格,这将起作用:

SELECT count(id) FROM designs WHERE TRIM(REPLACE(category_name, '--', ''))='interior'

答案 3 :(得分:0)

假设你有category_name的索引,这比将函数应用于每一行要有效得多,因为它可以使用索引:

SELECT COUNT(id) FROM designs WHERE category_name IN ('interior', 'interior--')