Php 选择2个相同的数据库以在一个列表中获取2个网站订单
我正在尝试将两个数据库连接到一个mysql查询中,这也很棒 之后,我尝试在正确的数据库中查找顺序数据,从中获取meta_值 但它混合了meta_value$first name,有时在行中重复它们 如果我只连接1个数据库,它们将按它们应该的方式出现 谁都能看出哪里出了问题 示例的Url:https://Php 选择2个相同的数据库以在一个列表中获取2个网站订单,php,mysql,Php,Mysql,我正在尝试将两个数据库连接到一个mysql查询中,这也很棒 之后,我尝试在正确的数据库中查找顺序数据,从中获取meta_值 但它混合了meta_value$first name,有时在行中重复它们 如果我只连接1个数据库,它们将按它们应该的方式出现 谁都能看出哪里出了问题 示例的Url:https:// 如果您的连接在同一个数据库服务器上,则可以指定模式(数据库名称),以便通过一个连接从两个连接中选择内容。您可以通过使用schema\u name.table\u name而不仅仅是表名来实现这一
如果您的连接在同一个数据库服务器上,则可以指定模式(数据库名称),以便通过一个连接从两个连接中选择内容。您可以通过使用schema\u name.table\u name
而不仅仅是表名来实现这一点
就像:
SELECT * FROM schema_name.wpd2_posts WHERE ...
在您的情况下,您可以使用UNION
将其组合在一起:
SELECT * FROM `schema1.wpd2_posts`
where post_status='wc-processing' or post_status='wc-completed'
or post_status='wc-failed' UNION
SELECT * FROM `schema2.wpd2_posts`
where post_status='wc-processing' or post_status='wc-completed'
or post_status='wc-failed' order by post_date DESC LIMIT 10
另一方面,您可以为您的准则使用IN()
子句,使此查询更具可读性:
WHERE post_status IN('wc-processing', 'wc-completed','wc-failed')
谢谢你的回答。但它给了我这个错误。不正确地使用UNION和ORDER BYMy bad。你应该在最后只放一次ORDERBY子句。我编辑了我的答案。ORDER BY
和LIMIT
将应用于结果,因此您希望LIMIT 10
,它将在两个表之间混合。如果您明确希望每个表中有5个,那么UNION
可能不起作用,您仍然需要有两个单独的查询。(您仍然可以通过单个连接执行这些操作)是的,我现在说:表'xxx_wp282.schema1.wpd2_posts'不存在它们存储在$v1
和$v2
中。schema name=db name。
WHERE post_status IN('wc-processing', 'wc-completed','wc-failed')