我想用idorm&paris数据库工具包(http://j4mie.github.io/idiormandparis/)提出这个请求:SELECT mqtt_table.* FROM `shelf_mqtt_confirmation_message` `mqtt_table` WHERE NOT( `confirm_result` <=> 'positive')我试过:$orm->where_not_equal("confirm_result","positive");但这相当于:SELECT mqtt_table.* FROM `shelf_mqtt_confirmation_message` `mqtt_table` WHERE NOT( `confirm_result` = 'positive')它排除了confirm_result为空的所有情况:但我也希望保留这些行。问题是,在MySQL=comparison中,如果要比较的元素之一为NULL而不是返回0,则运算符返回NULL。(当执行与=运算符类似的相等比较时,但如果两个操作数都为空,则返回1而不是空;如果一个操作数为空,则返回0而不是空)所以我的问题是,运营商是否存在于IdioRM和巴黎?除了使用野蛮的方法作为原始查询或在何处原始之外,是否有其他方法来处理我想要执行的请求? 最佳答案 这可以通过where_raw()docs link方法完成。可以重写以下SQL查询SELECT * FROM shelf_mqtt_confirmation_message WHERE NOT(confirm_result <=> 'positive')下面代码中的白痴$messages = ORM::for_table('shelf_mqtt_confirmation_message') ->where_raw('NOT(confirm_result <=> ?)', array('positive')) ->find_many();可能是$messages = ShelfMqttConfMessage::where_raw( 'NOT(confirm_result <=> ?)', array('positive') ) ->find_many();或者如果您使用的是模型工厂$messages = Model::factory('ShelfMqttConfMessage') ->where_raw('NOT(confirm_result <=> ?)', array('positive')) ->find_many();关于php - 如何使用idiorm和paris使用NULL-safe等于mysql运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42420258/
10-12 00:42