我有一个项目表,我有一个单独的表格,其中包含每个项目的个别购买.并非每件商品都已购买.我正在选择购买计数并将其与items表连接,其语句类似于以下内容:
SELECT items.name, purchases_count
FROM `items`
LEFT JOIN (SELECT sales.item_name, SUM(unit_sales) AS purchases_count
FROM sales GROUP BY item_name) sales ON sales.item_name = items.uid
Run Code Online (Sandbox Code Playgroud)
这导致数据类似于:
+------+-----------------+
| name | purchases_count |
|------+-----------------+
| Shoe | 12 |
| Belt | NULL |
+------+-----------------+
Run Code Online (Sandbox Code Playgroud)
当我想在上面过滤这个结果时,我的问题出现了purchases_count
.如果我使用WHERE purchases_count < 10
或类似的东西,根本没有销售记录的项目(即具有NULL
价值的项目)将从搜索中排除.
我试图使用COALESCE(purchases_count,0) AS purchases_count
哪个正确地将NULL
记录设置为0,但在使用时它们仍然没有出现WHERE
.我怀疑这COALESCE
是在发生之后发生的WHERE
.
我希望能够使用WHERE
并包含NULL
结果(作为零)来过滤此数字.有什么建议?
我创建了一个jQuery内容切换器.一般来说,它工作正常,但它有一个问题.如果多次单击侧面的链接,有时会显示多条内容.
问题最有可能出现在click事件中.这是代码:
$('#tab-list li a').click(
function() {
var targetTab = $(this).attr('href');
if ($(targetTab).is(':hidden')) {
$('#tab-list li').removeClass('selected');
var targetTabLink = $(this).parents('li').eq(0);
$(targetTabLink).addClass('selected');
$('.tab:visible').fadeOut('slow',
function() {
$(targetTab).fadeIn('slow');
}
);
}
return false;
}
);
Run Code Online (Sandbox Code Playgroud)
我已经尝试为转换添加锁定,以便在转换发生时忽略进一步的点击,但无济于事.我还尝试使用以下内容防止在某些内容已经动画时触发转换:
if ($(':animated')) {
// Don't do anything
}
else {
// Do transition
}
Run Code Online (Sandbox Code Playgroud)
但它似乎总是认为事物是动画的.有什么想法可以防止多次触发动画?
我有两个哈希,其结构与此类似:
hash_a = { :a => { :b => { :c => "d" } } }
hash_b = { :a => { :b => { :x => "y" } } }
Run Code Online (Sandbox Code Playgroud)
我想将这些合并在一起以产生以下哈希:
{ :a => { :b => { :c => "d", :x => "y" } } }
Run Code Online (Sandbox Code Playgroud)
merge函数将在第一个哈希值中替换:a的值,其值为:第二个哈希值中的a.所以,我编写了自己的递归合并函数,如下所示:
def recursive_merge( merge_from, merge_to )
merged_hash = merge_to
first_key = merge_from.keys[0]
if merge_to.has_key?(first_key)
merged_hash[first_key] = recursive_merge( merge_from[first_key], merge_to[first_key] )
else
merged_hash[first_key] = merge_from[first_key]
end
merged_hash
end
Run Code Online (Sandbox Code Playgroud)
但我得到一个运行时错误:can't add a new …