MySQL 结果是 0,尽管我可以在表中看到它

问题描述 投票:0回答:4

大家好,我遇到了一个从未遇到过的有趣问题,但这似乎经常在这里出现,但没有一个与我的情况完全一样。

我在 MySQL 中有一个表,其中保存从 .csv 导入的供应商数据

然后我通过供应商代码匹配产品。

但是,在执行此操作时,即使我可以在表中看到预期结果,我也没有收到匹配结果。

这是我的询问:

SELECT  `dealer` ,  `qty` 
FROM  `supplier_import_all` 
WHERE  `supplier_id` =  '13'
AND  `supplier_code` =  'DIGITAL979'
LIMIT 0 , 30

MySQL 结果消息:

MySQL 返回一个空结果集(即零行)。 (查询采取 0.0027 秒)

这是不对的,我可以在 PHPMyAdmin 的表中看到该条目:

enter image description here

任何关于这个的想法都将非常感激,因为我很困惑。


在插入数据库之前添加了以下内容,似乎已经解决了问题:

$supplier_code = str_replace(' ', '', $supplier_code);
$supplier_code = preg_replace('/[^A-Za-z0-9\-]/', '', $supplier_code);

仍然有兴趣知道为什么修剪不起作用,因为我确信它一定只是数据周围某处的白色间距,这已经被其他人在这里重申了。

mysql select
4个回答
1
投票

如果您的节目创建表格将会有所帮助。

您的列中似乎有错误或多余的数据。

试试这个

SELECT  dealer ,  qty 
FROM  supplier_import_all
WHERE trim(supplier_id) =  '13'
AND  trim(supplier_code) =  'DIGITAL979'
LIMIT 0 , 30

如果这不起作用,请尝试这个

SELECT  dealer ,  qty 
FROM  supplier_import_all
WHERE trim(supplier_id) =  '13'
LIMIT 0 , 30

如果有效,请尝试这个

SELECT  dealer ,  qty 
FROM  supplier_import_all
WHERE trim(supplier_code) =  'DIGITAL979'
LIMIT 0 , 30

这将帮助您识别哪一列包含错误数据。 通常,当您从文件导入数据时,会添加额外的空格/字符。

已编辑 因为我们现在知道了 sulier_code 列的问题。 尝试修复该列中的数据。 试试这个 ` 更新供应商进口全部 设置供应商代码=修剪(供应商代码);

更新供应商_进口_全部 设置供应商代码=修剪(来自供应商代码的“”);

更新供应商_进口_全部 设置供应商代码 = 修剪(两者“ “来自供应商代码); `


0
投票

您确定supplier_code 中没有空格吗?当您从 csv 导入时,有时可能会发生这种情况。通过主键查找该记录(如果有)。


0
投票

似乎数据库中存储了一些额外的空间,而在查询相同的pl时尝试使用like运算符,看看问题是否仍然存在,如果是的话,那真的很奇怪


0
投票

13
在列中右对齐,这意味着它可能是数字类型,而不是文本类型。尝试一下

...
WHERE  `supplier_id` = 13 AND ...

13
周围没有字符串分隔符)

© www.soinside.com 2019 - 2024. All rights reserved.