这是我第一次来这里,我是一个初学者,所以请容忍我的愚蠢:)
我想在mysql中从两个数据库中运行两个查询,如果第一个查询没有结果,那么第二个查询应该在第二个数据库中搜索相同的东西。
我们有汽车保险数据,有两个数据库,一个用于个人客户,另一个用于企业客户。我们需要根据车辆的chasis号或引擎号来搜索车辆。但是如果从第一个数据库没有找到结果,那么它应该去第二个数据库。
第一个查询:
SELECT * FROM skpoly_vw4 WHERE CHASIS = 878933第二个查询:
SELECT * FROM vw_motorschedule where sw_skpoly_chasis = 878933我们有一个数据库,但在IT中,我们有两个不同的视图,即用于个人客户的skpoly_vw4视图和用于企业客户的vw_motorschedule视图
发布于 2012-06-27 16:18:37
在执行第一个查询后使用SELECT FOUND_ROWS( )。
也就是说,在运行第二个查询之前检查是否为SELECT FOUND_ROWS( )>0
编辑:下面是一个示例
SELECT * FROM skpoly_vw4 WHERE CHASIS = 878933
DECLARE @rows INT
SET @rows= FOUND_ROWS();
if (@rows>0)
SELECT * FROM vw_motorschedule where sw_skpoly_chasis = 878933发布于 2012-06-27 16:45:50
这个怎么样?
SELECT SQL_CALC_FOUND_ROWS *
FROM DATABASE1
WHERE database1_CHASIS = 12345**
UNION ALL
SELECT *
FROM DATABASE2
WHERE FOUND_ROWS() = 0 AND database2_chasis= 12345** 更新1
每次会话,您都会得到mysql错误号1222。之所以会发生这种情况,是因为表skpoly_vw4和vw_motorschedule中的字段数量不同。对于UNION ALL,字段必须相同。
例如,在table1中你有id和name,在table2中你有id,fname,lname,如果你试图在select *中使用UNION ALL,它不会像在table1中那样工作,但是在table2中有3列。
希望你明白我的意思了。
另请阅读.
发布于 2012-06-27 16:24:14
尝尝这个
$query = mysql_query("SELECT * FROM DATABASE1 WHERE database1_CHASIS = 12345");
if(mysql_num_rows($query)==0){
$query = mysql_query("SELECT * FROM DATABASE2 where database2_chasis= 12345");
}
$customer = mysql_fetch_assoc($query);https://stackoverflow.com/questions/11221975
复制相似问题