SQL:如何从int类型行中删除空格?

时间:2017-09-23 13:57:49

标签: php sql pdo

我正在将一些数据插入数据库,其中一些数据是数字,但其间有空格,如(37 64 73 92 34) 这是一个不是5的整数 ,其类型为 int 的行不接受这些数字,需要它没有间距,所以在将这些数字插入数据库之前,我想使用 PHP SQL 删除间距,以便最终结果类似于 3764739234

4 个答案:

答案 0 :(得分:1)

对于MS SQL Server,您可以使用REPLACE()功能:

REPLACE('37 64 73 92 34', ' ', '');

真正的问题是你的号码是BigInt而不是INT,所以你可以这样做:

SELECT CONVERT(BIGINT,REPLACE('37 64 73 92 34', ' ', '') ) AS  [BigINTValue];

正如您在问题中所说, 其类型为int的行不接受这些数字 ,因为您将VARCHAR传递给{{ 1}}列,您也将INT传递给BigInt列。因此,如果您确实需要存储这些值(INT数据类型),则需要BigInt您的列将数据类型更改为ALTER数据类型。

答案 1 :(得分:0)

如果你想要字符串" 37 64 73 92 34"转换为" 3764739234" (例如,对于没有任何特殊字符的电话号码),您可以使用str_replace

要从字符串中获取 int 值,您只需将其转换为

即可
    $newValue = (int) str_replace(" ", "", $inputString);

答案 2 :(得分:0)

您可以先检查数字是否包含空格,如果是,则explode()白色间距,并使用implode()(int)数据类型强制将其放回到int:

if(strpos($number, " ")) $number = (int) implode("", explode(" ", $number));

看到它在3v4l

工作

答案 3 :(得分:0)

要删除PHP中的间距,只需使用 str_replace

$your_number = '37 64 73 92 34'
$number_with_no_spaces = str_replace(' ', '', $your_number);

上面的代码替换了给定字符串($ your_number)中缺少char('')的所有空格('')。