在功能值上选择条件

时间:2015-08-12 02:39:50

标签: mysql sql

我对SQL查询有一个初学者的问题:如何选择满足以列函数形式给出的条件的表的行?更具体地说,我有一个字符串'topic'的表,它实际上是空的或包含一个整数字符串,我喜欢做类似的事情(以高效的方式)

SELECT * FROM table WHERE Convert(int,'topic') BETWEEN 1 AND 10;

如何做到这一点? (上面的语法似乎有误......)

2 个答案:

答案 0 :(得分:3)

使用隐式投射

SELECT * FROM your_table WHERE topic BETWEEN 1 AND 10;

或明确

SELECT * FROM your_table WHERE cast(topic as signed) BETWEEN 1 AND 10;

答案 1 :(得分:2)

您可以使用MySQL"无声"转换设施。这会将字符串的前导数字转换为数字上下文中的数字。如果没有这样的数字,则返回0。

因此,对于您的示例,您可以这样做:

where topic + 0 between 1 and 10

如果字符串没有前导数字,则返回false。