2

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

我的 category_name 列下有如下值:

category_name

interior--
exterior
interior

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

我正在使用以下查询

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

--在where子句中匹配时 如何忽略

4

4 回答 4

2

--使用 TRIM() 函数从值中修剪尾随

SELECT count(id) FROM designs WHERE TRIM(TRAILING '--' FROM category_name)='interior'
于 2012-04-14T02:44:52.073 回答
0

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

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

希望这能解决你的问题

于 2012-04-14T02:49:28.830 回答
0

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

SELECT count(id) FROM designs WHERE TRIM(REPLACE(category_name, '--', ''))='interior'
于 2012-04-14T03:29:29.543 回答
0

假设您在 category_name 上有一个索引,这将比对每一行应用一个函数更有效,因为它将能够利用该索引:

SELECT COUNT(id) FROM designs WHERE category_name IN ('interior', 'interior--')
于 2012-04-14T03:36:01.820 回答