and or php,AND OR

女爷i 2022-11-13 04:08 285阅读 0赞

## AND OR

上面是基础的Where语句,下面看一下复杂一点的

你可以使用”AND” 或 “OR” 来拼接非常复杂的SQL语句

  1. namespace Action;
  2. use HY\\Action;
  3. class Index extends Action \{
  4. public function Index()\{
  5. //实例User表为对象
  6. $User = S("User");
  7. // 基础使用
  8. $User->select("user\_name", array(
  9. "AND" => array(
  10. "user\_id\[>\]" => 200,
  11. "age\[<>\]" => array(18, 25),
  12. "gender" => "female"
  13. )
  14. ));
  15. // WHERE user\_id > 200 AND age BETWEEN 18 AND 25 AND gender = 'female'
  16. $User->select("user\_name", array(
  17. "OR" => array(
  18. "user\_id\[>\]" => 200,
  19. "age\[<>\]" => array(18, 25),
  20. "gender" => "female"
  21. )
  22. ));
  23. // WHERE user\_id > 200 OR age BETWEEN 18 AND 25 OR gender = 'female'
  24. // 复合条件
  25. $User->has(array(
  26. "AND" => array(
  27. "OR" => array(
  28. "user\_name" => "foo",
  29. "email" => "foo@bar.com"
  30. ),
  31. "password" => "12345"
  32. )
  33. ));
  34. // WHERE (user\_name = 'foo' OR email = 'foo@bar.com') AND password = '12345'
  35. // 注意
  36. // 因为使用的是数组传参,所以下面这种用法是错误的。
  37. // 可见 你有两个OR ,数组不可能存在两个相同索引. 所以你需要将另一个OR 加上一个注释
  38. $User->select('\*', array(
  39. "AND" => array(
  40. "OR" => array(
  41. "user\_name" => "foo",
  42. "email" => "foo@bar.com"
  43. ),
  44. "OR" => array(
  45. "user\_name" => "bar",
  46. "email" => "bar@foo.com"
  47. )
  48. )
  49. ));
  50. // \[X\] SELECT \* FROM "account" WHERE ("user\_name" = 'bar' OR "email" = 'bar@foo.com') 这是错误的示范
  51. // 正确的方式是使用如下方式定义复合条件
  52. $User->select('\*', array(
  53. "AND \#Actually, this comment feature can be used on every AND and OR relativity condition" => array(
  54. "OR \#the first condition" => array(
  55. "user\_name" => "foo",
  56. "email" => "foo@bar.com"
  57. ),
  58. "OR \#the second condition" => array(
  59. "user\_name" => "bar",
  60. "email" => "bar@foo.com"
  61. )
  62. )
  63. ));
  64. // SELECT \* FROM "account"
  65. // WHERE (
  66. // (
  67. // "user\_name" = 'foo' OR "email" = 'foo@bar.com'
  68. // )
  69. // AND
  70. // (
  71. // "user\_name" = 'bar' OR "email" = 'bar@foo.com'
  72. // )
  73. // )
  74. \}
  75. \}

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读