Mysql 如何使用数字搜索varchar列?

Mysql 如何使用数字搜索varchar列?,mysql,sql,Mysql,Sql,我有一个varchar(30)列,如下所示: 953-41 975-12 952-13 934-34 列中的所有数字都共享以下结构:3个数字和一个破折号,后跟多个数字 我想做一个类似于SELECT*fromtablename的查询,其中value=95341 并仅使用WHERE子句中的数字获取“953-41” 我无法更改数据库并删除破折号,我需要在混合了我想要的数字和破折号的行上使用数值进行搜索。您可以使用以下方法: 您可以尝试: MYSQL: SELECT * FROM tablenam

我有一个varchar(30)列,如下所示:

953-41
975-12
952-13
934-34
列中的所有数字都共享以下结构:3个数字和一个破折号,后跟多个数字

我想做一个类似于
SELECT*fromtablename的查询,其中value=95341

并仅使用WHERE子句中的数字获取“953-41”

我无法更改数据库并删除破折号,我需要在混合了我想要的数字和破折号的行上使用数值进行搜索。

您可以使用以下方法:

您可以尝试:

MYSQL:

SELECT * FROM tablename WHERE value = INSERT(95341,4,0,'-')
SQL Server:

SELECT * FROM tablename WHERE value = STUFF(95341,4,0,'-')

你能再解释一下你的用例吗?为什么您需要使用
95341
而不是
“953-41”
进行搜索?这与电话号码有关,这肯定是我在项目中可以使用的最佳方法。我考虑过其他的选择,但它们更复杂,我想保持简单
SELECT * FROM tablename WHERE value = STUFF(95341,4,0,'-')