我有一个包含字符串格式数据的表。当我尝试选择与特定产品ID匹配的所有记录时,map reduce会运行其作业并在最终没有实际结果的情况下给出OK。我知道有关该产品ID的数据存在于表中。我哪里错了? 我的问题是
select * from tablename where product_id='xxxx';
我弄明白为什么会这样。对于面临同样问题的其他人,请尝试检查您的字符串格式。我的product_id保存为" xxxx"在文件中。因此,在查询时,如果我从tablename中选择*,其中product_id ='" xxxx"&#39 ;;有效。我摆脱了那些额外的报价。
答案 0 :(得分:1)
这通常是因为很难看到的空白,请尝试使用trim(product_id)=" xxxx"
答案 1 :(得分:0)
如果您的内容中有空格,请尝试更好一些,例如
select concat('#',product_id,'#') from tablename where product_id like '#%XXX%#';
答案 2 :(得分:0)
...我用我继承的一些数据遇到了这个,因为我要对数据进行大量操作(因为表只在10k记录范围内),所以我做了一些事情。像这样:
CREATE TABLE a AS
SELECT
regexp_extract(`origin`, '^.([A-Za-z0-9]*)', 1) as origin,
regexp_extract(`dest`, '^.([^"]*)', 1) as dest,
FROM a-gummy
两个正则表达式中的第二个是最精确的。它要求从原始字段的第二个字符开始一个字符串,该字符串一直运行到第一个遇到的字符。
如果数据集太大而无法简单地创建表的第二个实例,则可以使用以这种方式创建的视图。