MySQL存储过程:如果在WHERE中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL存储过程:如果在WHERE中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2205字,纯文字阅读大概需要4分钟。
内容图文
![MySQL存储过程:如果在WHERE中](/upload/InfoBanner/zyjiaocheng/884/32a261886209459eab55e67ae76b7f4e.jpg)
我正在尝试通过以下方式选择一些数据:
SELECT column
FROM table
WHERE a = a1
AND (b = b1 OR b = b2 OR b = b3);
我要它做的是,如果b不等于b1,请检查b = b2.但是,如果b = b1,请勿检查其他条件.
该select语句的结果只能是一个条目.但是,在我没有的语句中,它检查所有三个条件,有时返回多行.同样,我希望它停止检查条件是否为真.
关于如何实施的任何想法?我尝试过案例,但没有成功…
先感谢您!
编辑
这是我尝试运行的实际查询.
INSERT INTO shipment_flights
(airlinename, flt_no, flt_date, destination, phone, depttime, arrivaltime, pcs, weight)
SELECT st.airlinename, flightno, flightdate, destination,
(SELECT phone
FROM carrierlocations
WHERE carriers_carrierid = (select carrierid from carriers where airlinename = st.airlinename)
AND (city = destination OR (city != destination AND
city = (SELECT city FROM airports WHERE iataid =
(SELECT airports_iataid FROM ratelegs
WHERE shipments_shipid = c.shipments_shipid))
))) phone,
depttime, arrivaltime, sum(linepcs), sum(lineweight)
FROM segment_times st
JOIN contents2flights c2f
ON st.flightid = c2f.segments_flights_flightid
AND st.segmentid = c2f.segments_segmentid
JOIN contents c
ON c.lineno = c2f.contents_lineno
AND c.shipments_shipid = c2f.contents_shipments_shipid
WHERE c.shipments_shipid = var_shipid
GROUP BY flightid
ORDER BY flightdate, depttime;
这是一个示例输出:
airlinename flt_no flt_date destination phone pcs weight
Everts Air Alaska CH1 2008-02-20 Hughes 9074502351 24 2121
该查询将一堆航班数据插入临时表.我遇到的麻烦是获取某个位置的电话号码.这部分如下:
(SELECT phone
FROM carrierlocations
WHERE carriers_carrierid = (select carrierid from carriers where airlinename = st.airlinename)
AND (city = destination OR (city != destination AND
city = (SELECT city FROM airports WHERE iataid =
(SELECT airports_iataid FROM ratelegs
WHERE shipments_shipid = c.shipments_shipid))))) phone
在阿米特·巴尔加瓦(Amit Bhargava)建议的查询中,仅当临时表中有一行时,我才能获得正确的结果.如果还有更多,则会在选择手机部件时引发错误.
“错误代码:1242.子查询返回的行数超过1”
解决方法:
请尝试以下方法.不是最优雅的解决方案,但它应该可以工作.
SELECT column
FROM table
WHERE a = a1
AND (b = b1 OR (b != b1 AND (b = b2 OR (b != b2 AND b = b3))))
内容总结
以上是互联网集市为您收集整理的MySQL存储过程:如果在WHERE中全部内容,希望文章能够帮你解决MySQL存储过程:如果在WHERE中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。