Php:带大小写和多选的sql查询

Php:带大小写和多选的sql查询,php,sql,Php,Sql,我试图根据用户的搜索条件查询数据库,其中一个条件是注册性别:男性或女性 但是,用户可以作为标准男性女性或任何内容发送。当用户发送任何内容时,我试图选择所有行,但得到的结果为空 以下是我的一些试验,它们似乎都不起作用,但对于男性女性 $query = "SELECT * FROM UsersInfo WHERE gender = CASE '$et_gender' WHEN 'male' THEN 'male'

我试图根据用户的搜索条件查询数据库,其中一个条件是注册性别:男性或女性

但是,用户可以作为标准
男性
女性
任何内容
发送。当用户发送
任何内容时,我试图选择所有行,但得到的结果为空

以下是我的一些试验,它们似乎都不起作用,但对于
男性
女性

$query = "SELECT * 
            FROM UsersInfo 
            WHERE gender = CASE '$et_gender'
                WHEN 'male' THEN 'male'
                WHEN 'female' THEN 'female'
                WHEN 'anything' THEN 'female' AND 'male'
                            END";


$query = "SELECT * 
            FROM UsersInfo 
            WHERE gender = CASE '$et_gender'
                WHEN 'male' THEN 'male'
                WHEN 'female' THEN 'female'
                WHEN 'anything' THEN SELECT * FROM UsersInfo
                            END";


$query = "SELECT * 
                FROM UsersInfo 
                WHERE gender = CASE '$et_gender'
                    WHEN 'male' THEN 'male'
                    WHEN 'female' THEN 'female'
                    WHEN 'anything' THEN * 
                                END";

我看到的是,您根本不需要提及任何过滤条件,您的查询可以是

SELECT * FROM UsersInfo 
(或)在
中使用类似于操作员的

WHERE gender IN ('male','female','anything')
(或)根据您发布的代码,使用相等运算符
=

WHERE gender = '$et_gender'

我看到的是,您根本不需要提及任何过滤条件,您的查询可以是

SELECT * FROM UsersInfo 
(或)在
中使用类似于操作员的

WHERE gender IN ('male','female','anything')
(或)根据您发布的代码,使用相等运算符
=

WHERE gender = '$et_gender'
你能试试吗

 $query =   "SELECT * 
    FROM UsersInfo 
    WHERE (gender = '$et_gender' AND '$et_gender' IN ('male', 'female')) OR ('$et_gender'='anything')"
根据不同的值,我想您也可以将其缩写(但进行一些检查):

你能试试吗

 $query =   "SELECT * 
    FROM UsersInfo 
    WHERE (gender = '$et_gender' AND '$et_gender' IN ('male', 'female')) OR ('$et_gender'='anything')"
根据不同的值,我想您也可以将其缩写(但进行一些检查):


通常在WHERE子句中使用和/或而不是大小写表达式要好得多。@jarlh谢谢…我不是sql方面的专家…所以大小写听起来正是我所需要的…但是是的,也许你是对的尝试将查询打印到屏幕上,看看它是什么样子。通常在WHERE子句中使用和/或而不是大小写表达式要好得多。@jarlh谢谢…我不是sql方面的专家…所以大小写听起来正是我所需要的…但是是的,也许你是对的尝试将你的查询打印到屏幕上,看看它是什么样子。没有男人…如果例如用户在条件中发送
male
,我应该只从表中获取男性用户…对于
female
…和所有这些用户对于
任何东西
没有男人…如果例如用户在条件中发送
male
,我应该从表中获取男性用户…女性用户也一样,
任何东西的
都是如此
谢谢,看起来不错,我不是sql专家,但我会尝试一下。谢谢,看起来不错,我不是sql专家,但我会尝试一下