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