Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果值小于或大于in,如何获得“u超出值”;超出限额;在mysql中,列i将得到1或0_Mysql_Sql - Fatal编程技术网

如果值小于或大于in,如何获得“u超出值”;超出限额;在mysql中,列i将得到1或0

如果值小于或大于in,如何获得“u超出值”;超出限额;在mysql中,列i将得到1或0,mysql,sql,Mysql,Sql,请原谅我英语写得不好 我的sql查询表明我正在获取值、低值、高值和极限值。问题超出了限制,无法获得正确的值,它显示所有0 SELECT `myvalues`.`value`, `sub_types`.`low_value`, `sub_types`.`high_value`, (case when myvalues.value > sub_types.low_value and myvalues.value < sub_types.high_valu

请原谅我英语写得不好

我的sql查询表明我正在获取值、低值、高值和极限值。问题超出了限制,无法获得正确的值,它显示所有0

SELECT `myvalues`.`value`, `sub_types`.`low_value`, `sub_types`.`high_value`,               
 (case when myvalues.value > sub_types.low_value  and myvalues.value < sub_types.high_value then 1 else 0 end) as limit_exceded
FROM `myvalues`
JOIN `sub_types` ON `myvalues`.`sub_type_id` = `sub_types`.`id`
WHERE `myvalues`.`sub_type_id` IN('68')
AND `myvalues`.`observation_id` IN('455', '471', '470', '469', '468', '467', '466', '465', '462', '461', '460', '459', '458', '457', '456', '372', '453', '373', '376', '439', '440', '441', '442', '443', '445', '446', '447', '448', '452', '454')
选择'myvalues'、'value'、'sub_类型'、'low_值'、'sub_类型'、'high_值',
(当myvalues.value>sub_类型.low_值和myvalues.value
我想在值小于40或大于180的值前面加int 1。此外,如果从该列表中提取最大值和最小值,并计算超出的极限值,则将不胜感激

预期结果为设定值1,其中值为900、9和1等

问题超出限制,无法获得正确的值,它显示所有0

我怀疑问题在于类型。图像中数据排列的方式以及
WHERE
子句中字符串的使用表明值是字符串而不是数字。转换的简单方法是使用
+0

SELECT v.value, st.low_value, st.high_value,               
       (v.value + 0) > (st.low_value + 0)  and (v.value + 0) < (st.high_value + 0) as limit_exceded
FROM myvalues v JOIN
     sub_types st
     ON v.sub_type_id = st.id
WHERE v.sub_type_id IN ('68') AND
      v.observation_id IN ('455', '471', '470', '469', '468', '467', '466', '465', '462', '461', '460', '459', '458', '457', '456', '372', '453', '373', '376', '439', '440', '441', '442', '443', '445', '446', '447', '448', '452', '454')
选择v值、st低值、st高值,
(v.value+0)>(st.low_值+0)和(v.value+0)<(st.high_值+0)超过极限值
从myv连接
子类型st
在v.sub_type_id=st.id上
其中v.sub_type_id在('68')中,并且
v、 观察id为('455','471','470','469','468','467','466','465','462','461','460','459','458','457','456','372','453','373','376','439','440','441','442','443','445','446','447','448','452','454')
注:

  • 表别名使查询更易于编写和读取
  • 不必要的反勾号只会使查询更难写入和读取
  • 在MySQL中,您不需要
    CASE
    表达式——您只需要使用布尔表达式

也就是说,您应该修复数据,而不是查询。如果值是数字,则将其存储为数字,而不是字符串。

提供示例数据(如创建表格+插入脚本)及其所需输出。顶部图像中给出的数据和底部粗体线中给出的所需输出图像不适用,它不能被复制粘贴到服务器或fidle上并进行测试。好的,让我来分享谢谢你的澄清