非常简单的问题。但是在过去的几个小时里仍然停滞不前。
我在MySQL(phpMyadmin)上执行SQL查询,如:
SELECT * FROM `orderbook` WHERE (`order_to` IN ('49,6')) AND (`rate_change` = 'YES') ORDER BY `createdon` DESC LIMIT 10
这里我只得到与49匹配的结果, 我改变了顺序,如(6,49),然后我得到的结果只有6 ..
请在我失踪的地方帮忙..
感谢。 PRASHANT
答案 0 :(得分:4)
应该是:
IN (6, 49) assuming this is a numeric column.
答案 1 :(得分:1)
您应该使用IN
:
... WHERE (`order_to` IN (49, 6)) ...
或者如果它们是字符串:
... WHERE (`order_to` IN ('49', '6')) ...
当您传递IN
值'49,6'
时,它会尝试将该确切字符串与字段值匹配。
答案 2 :(得分:1)
正如@gview和@JorgeCampos所说,你不应该引用def validation(x):
x = np.array(x, copy=True, subok=True)
assert x.ndim == 2, "input must be 2D"
assert x.shape[1] == 16, "input must have 16 columns"
assert np.issubdtype(x.dtype, np.integer), "input must be integers"
assert np.all((x >= 0) & (x <= 9))
y = x[1:-1:2]
x[1:-1:2] = ((2 * y) // 10) + ((2 * y) % 10)
sumDig = np.sum(x, axis=1)
return ['Invalid' if s % 10 else 'Valid' for s in sumDig]
声明中的数字列表。
它部分工作的原因是因为MySQL试图变得聪明。因为IN
是一个整数,MySQL正在尝试将字符串order_to
转换为数字并获得'49,6'
。
49
答案 3 :(得分:0)
也许你在那里使用错误的练习'46,6'我希望你想要在46和6中搜索,如果这是真的,那么使用以下查询。
SELECT * FROM `orderbook` WHERE (`order_to` IN ('49','6')) AND (`rate_change` = 'YES') ORDER BY `createdon` DESC LIMIT 10