2023-05-12 开启多语言插件支持……

WHERE语法-Medoo使用指南

php 苏 demo 2601℃ 0评论

基本条件

基本条件足够简单易懂。您可以使用其他符号来获得用于数字的高级过滤器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
$database->select("account""user_name", [
    "email" => "foo@bar.com"
]);
// WHERE email = 'foo@bar.com'
 
$database->select("account""user_name", [
    "user_id" => 200
]);
// WHERE user_id = 200
 
$database->select("account""user_name", [
    "user_id[>]" => 200
]);
// WHERE user_id > 200
 
$database->select("account""user_name", [
    "user_id[>=]" => 200
]);
// WHERE user_id >= 200
 
$database->select("account""user_name", [
    "user_id[!]" => 200
]);
// WHERE user_id != 200
 
$database->select("account""user_name", [
    "age[<>]" => [200, 500]
]);
// WHERE age BETWEEN 200 AND 500
 
// 你不仅可以使用单一的字符串或数字值,也可以使用数组
$database->select("account""user_name", [
    "OR" => [
        "user_id" => [2, 123, 234, 54],
        "email" => ["foo@bar.com""cat@dog.com""admin@medoo.in"]
    ]
]);
// WHERE
// user_id IN (2,123,234,54) OR
// email IN ('foo@bar.com','cat@dog.com','admin@medoo.in')
 
// 否定条件 (自Medoo 0.9起支持)
$database->select("account""user_name", [
    "AND" => [
        "user_name[!]" => "foo",
        "user_id[!]" => 1024,
        "email[!]" => ["foo@bar.com""cat@dog.com""admin@medoo.in"],
        "city[!]" => null
    ]
]);
// WHERE
// `user_name` != 'foo' AND
// `user_id` != 1024 AND
// `email` NOT IN ('foo@bar.com','cat@dog.com','admin@medoo.in') AND
// `city` IS NOT NULL
 
// 可以从 select()或get()方法的结果取得
$database->select("account""user_name", [
    "user_id" => $database->select("post""user_id", ["comments[>]" => 40])
]);
// WHERE user_id IN (2, 51, 321, 3431)

相对条件 

相对条件可以描述数据和数据之间的复杂关系。您可以使用“and”和“or”来构建复杂的相对条件查询。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// [基本的相对条件]
$database->select("account""user_name", [
    "AND" => [
        "user_id[>]" => 200,
        "age[<>]" => [18, 25],
        "gender" => "female"
    ]
]);
// WHERE user_id > 200 AND age BETWEEN 18 AND 25 AND gender = 'female'
 
$database->select("account""user_name", [
    "OR" => [
        "user_id[>]" => 200,
        "age[<>]" => [18, 25],
        "gender" => "female"
    ]
]);
// WHERE user_id > 200 OR age BETWEEN 18 AND 25 OR gender = 'female'
 
// [复合的相对条件]
$database->has("account", [
    "AND" => [
        "OR" => [
            "user_name" => "foo",
            "email" => "foo@bar.com"
        ],
        "password" => "12345"
    ]
]);
// WHERE (user_name = 'foo' OR email = 'foo@bar.com') AND password = '12345'

全文搜索

通过目标关键词搜索记录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// [MATCH]
$database->select("post_table""post_id", [
    "MATCH" => [
        "columns" => ["content""title"],
        "keyword" => "foo"
    ]
]);
// WHERE MATCH (content, title) AGAINST ('foo')
 
// [LIKE]
// The default connector of LIKE is AND
$database->select("account""user_id", [
    'LIKE' => [
        'location' => "foo",
        'nickname' => "foo",
        'user_name' => "foo",
        'description' => "foo"
    ]
]);
 
$database->select("account""user_id", [
    'LIKE' => [
        'AND' => [
            'location' => "foo",
            'nickname' => "foo",
            'user_name' => "foo",
            'description' => "foo"
        ]
    ]
]);
// WHERE (
//  location LIKE '%foo%' AND
//  nickname LIKE '%foo%' AND
//  user_name LIKE '%foo%' AND
//  description LIKE '%foo%'
// )
 
$database->select("account""user_id", [
    'LIKE' => [
        'OR' => [
            'location' => "foo",
            'nickname' => "foo",
            'user_name' => "foo",
            'description' => "foo"
        ]
    ]
]);
// WHERE (
//  location LIKE '%foo%' OR
//  nickname LIKE '%foo%' OR
//  user_name LIKE '%foo%' OR
//  description LIKE '%foo%'
// )

附加条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$database->select("account""user_id", [
    "GROUP" => "type",
 
    // "ORDER" => "age DESC"
    "ORDER" => "age",
 
    // Must have to use it with ORDER together
    "HAVING" => [
        "user_id[>]" => 500
    ],
 
    // LIMIT => 20
    "LIMIT" => [20, 100]
]);
//  SELECT user_id FROM account
//  GROUP BY type
//  ORDER BY age
//  HAVING user_id > 500
//  LIMIT 20,100

原文标题:WHERE语法-Medoo使用指南

原文链接:http://loiy.net/post/566.html

打赏

转载请注明:苏demo的别样人生 » WHERE语法-Medoo使用指南

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)