Php MySQL中的内联IF语句

Php MySQL中的内联IF语句,php,mysql,if-statement,case,Php,Mysql,If Statement,Case,我已经绞尽脑汁好几天了,找不到一个方法来实现我想做的事情(我已经在网上搜索过了!)。我尝试过WHERE子句、嵌套的IF和CASE函数,但都没有用 我有一张关于模型的表格。信息包括一个名为“国家”的字段,这是他们实际居住的地方。还有一个名为“hideme”的字段,如果他们不想出现在来自该国家的人员的搜索结果中,则可以是1,否则可以是0。我正在用MaxMind的GeoIP数据库获取访客国家 这就是我想要的,更清楚地说:如果访客来自,比如说我们,模型来自美国,并且“hideme”字段为1,那么她不应该

我已经绞尽脑汁好几天了,找不到一个方法来实现我想做的事情(我已经在网上搜索过了!)。我尝试过WHERE子句、嵌套的IF和CASE函数,但都没有用

我有一张关于模型的表格。信息包括一个名为“国家”的字段,这是他们实际居住的地方。还有一个名为“hideme”的字段,如果他们不想出现在来自该国家的人员的搜索结果中,则可以是1,否则可以是0。我正在用MaxMind的GeoIP数据库获取访客国家

这就是我想要的,更清楚地说:如果访客来自,比如说我们,模型来自美国,并且“hideme”字段为1,那么她不应该出现在结果上。我对PHP或获取国家代码没有问题,只需要正确的SELECT语句

以下是我目前的代码:

$select = "SELECT user
       IF (country != '$country_id', country,
           IF (hideme = 1, 1, 0))
       FROM models";

$result = mysql_query($select);

while ($row = mysql_fetch_array($result))
{
echo $row[user];
}

提前谢谢各位

我想你需要一个WHERE子句

SELECT user
FROM   models
WHERE NOT (country = '$country_id' AND hideme)

我想你需要一个WHERE子句

SELECT user
FROM   models
WHERE NOT (country = '$country_id' AND hideme)

也许我没有正确理解你的问题,但这不只是:

SELECT user FROM models WHERE country = '$country_id' AND hideme = 0

也许我没有正确理解你的问题,但这不只是:

SELECT user FROM models WHERE country = '$country_id' AND hideme = 0
这将返回来自其他国家/地区或hideme设置为0的模型。这与表示返回模型(来自同一国家且hideme设置为1的模型除外)的含义相同,因此您也可以将where更改为:

SELECT 
  user
FROM
  models
WHERE
  NOT ( /* Except ... */
    country = '$country_id' /* .. those that are from the same country */
    AND hideme = 1 /* .. and having hideme set to 1. */
  )
后者稍难阅读,但更符合文本描述。结果是相同的,假设您没有任何国家/地区或隐藏项的值为NULL的记录

这将返回来自其他国家/地区或hideme设置为0的模型。这与表示返回模型(来自同一国家且hideme设置为1的模型除外)的含义相同,因此您也可以将where更改为:

SELECT 
  user
FROM
  models
WHERE
  NOT ( /* Except ... */
    country = '$country_id' /* .. those that are from the same country */
    AND hideme = 1 /* .. and having hideme set to 1. */
  )

后者稍难阅读,但更符合文本描述。结果是一样的,,假设您没有国家/地区或hideme值为NULL的记录。

SELECT*FROM models WHERE country=$country\u id AND hideme=0
?请提供示例数据和所需输出。@andrewsi如果她有一个hideme=1但来自不同的国家怎么办?@AdanVasconcelos-看看GolezTrol的答案
SELECT*FROM国家=$country\u id和hideme=0的模型
?请提供样本数据和所需输出。@andrewsi如果她有一个hideme=1但来自另一个国家该怎么办?@AdanVasconcelos-看看GolezTrol的回答标记,它只给我与访客国家匹配的模型,如果我否定它!=,“我没有找到与国家相匹配的,但是没有隐藏的东西。”@AdanVasconcelos:我想我现在知道你的问题是什么意思了,但一点也不清楚。你应该尽量把你的问题说清楚。提供示例数据并显示您想要的结果。谢谢Mark。这是我的第一篇文章。下次我会尽量说得更清楚。马克,这只会给我提供与游客所在国家相匹配的模型,如果我否认这一点!=,“我没有找到与国家相匹配的,但是没有隐藏的东西。”@AdanVasconcelos:我想我现在知道你的问题是什么意思了,但一点也不清楚。你应该尽量把你的问题说清楚。提供示例数据并显示您想要的结果。谢谢Mark。这是我的第一篇文章。下次我会尽量讲清楚的。