子串ERROR:WHERE的参数必须是boolean类型,而不是type text

时间:2016-10-22 23:43:06

标签: postgresql psql

SELECT substring(category FROM '[0-9]+') from microwaves;

这样可以正常工作并返回数字的微波类别。

UPDATE microwaves SET category = '' WHERE substring(category FROM '[0-9]+');

这会在Postgres 9.5中引发错误

  

错误:WHERE的参数必须是boolean类型,而不是type text

如何更新数字字段?

1 个答案:

答案 0 :(得分:1)

WHERE子句用于将结果过滤到使子句为true的所有项,但SUBSTRING()返回文本。您可能正在寻找以下其中一项:

UPDATE microwaves SET category = '' WHERE substring(category FROM '[0-9]+') is null;

-OR -

UPDATE microwaves SET category = '' WHERE substring(category FROM '[0-9]+') is not null;