在执行SELECT语句之前,我想对sqlite数据库的字段执行“即时”修改。
该字段名为'topic_simple',其中包含一些文本。在文本中的某处,我包含了一种分隔符:4个空格:" "。
下面是我的典型SELECT语句之一:
SELECT * FROM papers WHERE (topic_simple LIKE '% 3D print%')
我想要这样的东西:
SELECT * FROM papers WHERE ((topic_simple_before_4_spaces) LIKE '% 3D print%')
我不想修改数据库中的topic_simple,我只想对这个字段的子字符串执行一条select语句。
我该怎么做呢?
发布于 2016-01-04 17:53:09
LIKE非常强大。为什么不将这四个空格添加到LIKE表达式中:
SELECT *
FROM papers
WHERE topic_simple LIKE '% 3D print% %';请注意,分隔符后面的文本不应该包含分隔符,因为这样可能会得到不需要的行。如果您的SQLite支持它,您还可以使用正则表达式。
在MYSQL中,您可以直接“选择”(或“提取”) WHERE子句中四个空格之前的文本:
SELECT *
FROM papers
WHERE SUBSTRING(topic_simple, 1, LOCATE(' ', topic_simple) - 1) ...;https://stackoverflow.com/questions/34588200
复制相似问题