【发布时间】:2017-08-14 23:00:26
【问题描述】:
我在数据库中有一个phone 列,记录的右侧包含不需要的空格。我尝试使用修剪和替换,但它没有返回正确的结果。
如果我使用
phone like '%2581254%'
返回
customerid
-----------
33470
33472
33473
33474
但我只需要在开头使用百分号或通配符,我只想匹配左侧。
所以如果我这样使用它
phone like '%2581254'
我什么也得不到,因为右边的空格!
所以我尝试使用修剪和替换,但只得到一个结果
LTRIM(RTRIM(phone)) LIKE '%2581254'
返回
customerid
-----------
33474
请注意,这四个 id 具有相同的电话号码!
表格数据
customerid phone
-------------------------------------
33470 96506217601532388254
33472 96506217601532388254
33473 96506217601532388254
33474 96506217601532388254
33475 966508307940
我为测试建议添加了很多数字
php 函数取最后 7 位数字并进行比较。
例如
01532388254 will be 2581254
我想搜索电话号码中包含这 7 位数字的所有用户 2581254
我不知道问题出在哪里!
它应该返回 4 个 id 而不是 1 个 id
【问题讨论】:
-
请贴出问题中的表格数据(尤其是电话号码和列的日期类型)
-
显然,这三个只是包含2581254,而不是结束。
-
我添加了我要搜索的数据
-
您的 PHP 函数是采用最后 7 位数字还是采用空格加上最多 7 个字符的数字?在将空格插入数据库之前修剪空格。
-
没有任何空格或字符我使用 var_dump php:232:string '2581254' (length=7) 打印电话号码,因为你看到没有空格
标签: sql sql-server database tsql sql-like