gpt4 book ai didi

html - 在 mysql 中创建一个可选的 Where 子句

转载 作者:行者123 更新时间:2023-11-29 00:10:45 25 4
gpt4 key购买 nike

这是一个 fiddle example .

谁能告诉我如何在此语句中创建一个可选的 Where 子句?

SELECT u.user_id,u.name,.u.shipping_countries,
u.contact,s.toy_id,s.price
FROM User u
LEFT JOIN Sales_info s ON u.user_id = s.user_id
LEFT JOIN Toy t ON s.toy_id = t.toy_id
WHERE u.name = 'John'
( ???AND s.toy_id = '222' ???)

我的预期输出应该是:

USER_ID NAME    SHIPPING_COUNTRIES  CONTACT TOY_ID  PRICE
3 John Europe gmail 222 (null)

CASE 可能有效吗?我试过Case When s.toy_id = '222' ELSE 1=1 END,但显然不正确。

背景:

我有一个 html 表单,允许卖家在每个产品页面上提交他们的价格,如果他们也销售他们正在浏览的产品的话。

表单通过 Ajax 动态拉入。我想先做一个查询,尝试从卖家表中检索一些基本信息(如果有的话),以尽可能多地填写输入表单。例如,如果他们已经在其他页面填写了运输国家和联系方式等基本信息,那么当他们被拉入玩具 B 页面时,这些详细信息将成为输入表单中的默认值。

  <form>
<input type='hidden' value='222' name='toy_id'/>
<input type='text' value='Tom' name='user_name'/>
<input type='text' value='' name='product_page_url'/>
<input type='text' value='' name='price'/>
<input type='text' value='Europe,Asia' name='shipping_countries'/>
<input type='text' value='my@gmail.com' name='contact'/>
<input type='submit'>
</form>

如果他们已经提交了玩具 B 的价格,该表格将显示他们之前输入的所有值,以便他们可以修改/更新它们。

最佳答案

如果您总是想匹配一个玩具 ID,但前提是该用户出售该玩具,那么您可以加入该玩具的子选择:

SELECT u.user_id,u.name,.u.shipping_countries,
u.contact,s.toy_id,s.price
FROM User u
LEFT JOIN (select * from Sales_info where toy_id = 222) s ON u.user_id = s.user_id
LEFT JOIN Toy t ON s.toy_id = t.toy_id
WHERE u.name = 'John'

这样一来,如果该玩具的用户与所选用户不匹配,左连接仍会为您提供用户表中的信息。

请注意这对大型数据库的有效性,因为我们不能在连接中使用索引。但是,如果我们总是从 dales_info 中选择一行,那么我希望它应该不会太糟糕。它至少有效。

关于html - 在 mysql 中创建一个可选的 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com