我很不熟悉MySQL查询,但我目前正在学习它们。我如何找到对象的所有nil
字段,然后填充这些字段中的一个?Ruby on rails MYSQL查询
例如,我有一个库存 - 但我想找到所有的空插槽以显示我留下了多少个插槽,然后找到空的插槽,然后仅填充字符串中的一个字段或编号。
我该怎么做?
这是我尝试代码:
@cast = Cart.where("user_id = ? AND cart_slot_one = nil AND cart_slot_two = nil AND cart_slot_three = nil AND cart_slot_four = ? AND cart_slot_five = ? AND cart_slot_six = ? AND cart_slot_seven = ? AND cart_slot_eight = ? AND cart_slot_nine = ? AND cart_slot_ten = ?",
current_user.id, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil).first
这里有几个想法: 你会发现一个所有空购物车或什么都没有。如果有几个,你就随机选一个(第一个)。这是打算? 你有你的购物车参考(?)插槽?这是你想要的吗?它不应该是相反的吗?插槽属于购物车。然后,您可以根据需要安装尽可能多的插槽? 你可以展示这里涉及的模型来澄清这一点吗? –
你已经在一篇文章中提出了很多问题。首先,你的代码是否按预期工作?如果不是,那么实际产出是多少?预期产出是多少? – Agis
@StormViper你问题中的代码使用'where'的版本,它有一个作为参数提供的SQL字符串。这与你可以在@ akz92答案中看到的散列参数版本形成对比。当你使用SQL字符串版本时,你需要使用'IS NULL'而不是'= nil'。无论这个语法问题如何,您都应该阅读关于关联的内容,以便您不必为每个“购物车位置”制作命名列。 –