大家好,我遇到了一个从未遇到过的有趣问题,但这似乎经常出现在这里,但没有一个与我的情况完全一样。
我在 MySQL 中有一个表,其中保存从 .csv 导入的供应商数据
然后我通过供应商代码匹配产品。
但是,在执行此操作时,即使我可以在表中看到预期结果,我也没有收到匹配项。
这是我的查询:
SELECT `dealer` , `qty`
FROM `supplier_import_all`
WHERE `supplier_id` = '13'
AND `supplier_code` = 'DIGITAL979'
LIMIT 0 , 30
以及 MySQL 结果消息:
MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0027 sec )
这是不对的,我可以在 PHPMyAdmin 的表中看到该条目:
任何关于这个问题的想法都将非常感激,因为我很困惑。
<小时/>在插入数据库之前添加了以下内容,似乎已经解决了问题:
$supplier_code = str_replace(' ', '', $supplier_code);
$supplier_code = preg_replace('/[^A-Za-z0-9\-]/', '', $supplier_code);
仍然有兴趣知道为什么修剪不起作用,因为我确信它一定只是数据周围某处的白色间距,这已经被其他人在这里重申了。
最佳答案
如果您的节目创建表格将会有所帮助。
该列中似乎有错误或多余的数据。
试试这个
选择经销商,数量
来自供应商_进口_全部
WHERE 修剪(supplier_id) = '13'
AND 修剪(供应商代码)= 'DIGITAL979'
限制 0 , 30
如果这不起作用,请尝试这个
选择经销商,数量
来自供应商_进口_全部
WHERE 修剪(supplier_id) = '13'
限制 0 , 30
如果有效的话试试这个
选择经销商,数量
来自供应商_进口_全部
WHERE 修剪(供应商代码)= 'DIGITAL979'
限制 0 , 30
这将帮助您识别哪一列包含错误数据。 通常,当您从文件导入数据时,会添加额外的空格/字符。
已编辑 因为我们现在知道了 sulier_code 列的问题。尝试修复该列中的数据。 尝试这个 ` 更新供应商进口全部 设置供应商代码=修剪(供应商代码);
更新供应商进口全部 设置供应商代码=修剪(来自供应商代码的“\t”);
更新供应商进口全部 设置供应商代码=修剪(来自供应商代码的“\n”); `
关于MySQL 结果是 0,尽管我可以在表中看到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26600714/