gpt4 book ai didi

mysql - 带有 where 条件的 select 语句(选择全部或部分)

转载 作者:行者123 更新时间:2023-11-29 13:56:43 25 4
gpt4 key购买 nike

我必须下表:

图像:

imageID    userId    Translated    theImage
--------------------------------------------
1 2 1 image1
2 3 0 image2
3 3 0 image3
4 3 0 image4
5 3 1 image5

和翻译链:

imageID    sourceLang    targetLang
------------------------------------
1 2 3
2 4 1
3 5 1
4 4 2
5 1 4

现在我有两个选择:我想要选择所有未以任何语言为特定用户翻译的图像或者为该用户选择所有未翻译为特定语言的图像。

我对第一个选项有以下查询:

"Select images.imageid, images.theimage, images.translationRating 
From images where images.userID=? And images.translated =0"

对于第二个选项,我有:

"Select images.imageid, images.theimage, images.translationRating 
From images, translationchains
where images.userID=? And images.translated =0 and
translationchains.imageId = images.imageid
and translationchains.targetLang = ? "

例如,如果我对用户 3 使用第一个查询,我希望结果为:

2         3         0           image2
3 3 0 image3
4 3 0 image4

对于用户 3 和 targerLang = 1 的第二个查询,我希望结果是:

    2         3         0           image2
3 3 0 image3

我想将这两个查询合并为一个查询,该查询适用于所有情况(根据我将发送的参数)

我该怎么做?

我试图将字符串“”(空字符串)作为第二个参数(translationchains.targetLang =?)发送,因此它将忽略此条件,但它不起作用

最佳答案

你可以试试这个

第一个查询

      Select * From images where userID=3 And translated =0

DEMO HERE

输出:

  imageID   userId  Translated  theImage 
2 3 0 image2
3 3 0 image3
4 3 0 image4

第二个查询

   Select i.imageID, userId, Translated, theImage 
From images i
inner join translationchains t
on t.imageId = i.imageid
where i.userID=3 And i.translated =0
and t.targetLang = 1

DEMO HERE

输出:

 imageID    userId  Translated  theImage 
2 3 0 image2
3 3 0 image3

组合:

 Select i.imageID, userId, Translated, theImage 
From images i
inner join translationchains t
on t.imageId = i.imageid
where i.userID=3 And i.translated =0
and t.targetLang in (select targetLang from translationChains )
^^^^^-------replace this by 1 or 2 or 3 or let it like that for all

//-- if you want change targetLang just replace it by any number
//--like that (select 1 from translationChains )

DEMO HERE

OBS:你也可以在 php 中完成,当你选择语言然后输入

   $sql .= "AND t.targetLang = the_id_selected_of_language ";

关于mysql - 带有 where 条件的 select 语句(选择全部或部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15741168/

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