如何使用数字搜索varchar列?

时间:2017-08-28 17:08:20

标签: mysql sql

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

953-41
975-12
952-13
934-34

该列的所有数字共享以下结构:3个数字和短划线后跟更多数字。

我想创建一个类似SELECT * FROM tablename WHERE value = 95341的查询
仅使用WHERE子句中的数字获得'953-41'。

我无法更改我的数据库并删除破折号,我需要使用数字值搜索混合我想要的数字的行和中间的短划线。

2 个答案:

答案 0 :(得分:3)

你可以试试:

MYSQL:

function postData(req,res){
 Upload(req, res, function (error) {
    if (error) {
        res.status(400).send(error);
    }
    console.log("New photo added");
        console.log(req.files);
        fs.readFile(req.files.gallerypic.path, function(err, data) {
            if(err) {
                console.log("Error in reading pic from disk");
            }
            else {
                fs.writeFile('newpic.jpg', data, 'binary', function(err) {
                    if(err) {
                        console.log("Error in writing pic to disk");
                    }
                });
            }
        });
        res.redirect('/profile');
 })
}

SQL Server:

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

答案 1 :(得分:1)

你可以用这个:

SELECT *
FROM yourTable
WHERE CAST(REPLACE(colName, '-', '') AS UNSIGNED) = 95341