Mysql 根据函数值的条件选择

Mysql 根据函数值的条件选择,mysql,sql,Mysql,Sql,对于SQL查询,我有一个初学者的问题:如何选择满足以列函数形式给出的条件的表的行?更具体地说,我有一个带有字符串“topic”的表,它实际上是空的或包含一个整数字符串,我喜欢这样做(在一个高效的maner中) 如何做到这一点?(上面的语法似乎是错误的…您可以使用MySQL的“静默”转换功能。这将字符串的前导数字转换为数字上下文中的数字。如果没有这样的数字,则返回0 因此,以您的示例为例,您可以: where topic + 0 between 1 and 10 如果字符串没有前导数字,则返回f

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

如何做到这一点?(上面的语法似乎是错误的…

您可以使用MySQL的“静默”转换功能。这将字符串的前导数字转换为数字上下文中的数字。如果没有这样的数字,则返回0

因此,以您的示例为例,您可以:

where topic + 0 between 1 and 10
如果字符串没有前导数字,则返回false。

您可以使用MySQL的“静默”转换功能。这将字符串的前导数字转换为数字上下文中的数字。如果没有这样的数字,则返回0

因此,以您的示例为例,您可以:

where topic + 0 between 1 and 10

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

或者使用隐式转换

SELECT * FROM your_table WHERE topic BETWEEN 1 AND 10;
或明确的

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

或者使用隐式转换

SELECT * FROM your_table WHERE topic BETWEEN 1 AND 10;
或明确的

SELECT * FROM your_table WHERE cast(topic as signed) BETWEEN 1 AND 10;
太好了,就这样:-)!太好了,就这样:-)!