| ... | ... |
@@ -3335,7 +3335,8 @@ Table name. |
| 3335 | 3335 |
where => 'title is null' |
| 3336 | 3336 |
# -> where title is null |
| 3337 | 3337 |
|
| 3338 |
-Where clause. See L<DBIx::Custom::Where>. |
|
| 3338 |
+Where clause. |
|
| 3339 |
+See also L<DBIx::Custom::Where> to know how to create where clause. |
|
| 3339 | 3340 |
|
| 3340 | 3341 |
=back |
| 3341 | 3342 |
|
| ... | ... |
@@ -3615,6 +3616,7 @@ You can use this in insert statement. |
| 3615 | 3616 |
); |
| 3616 | 3617 |
|
| 3617 | 3618 |
Create a new L<DBIx::Custom::Where> object. |
| 3619 |
+See L<DBIx::Custom::Where> to know how to create where clause. |
|
| 3618 | 3620 |
|
| 3619 | 3621 |
=head1 ENVIRONMENTAL VARIABLES |
| 3620 | 3622 |
|
| ... | ... |
@@ -150,53 +150,48 @@ DBIx::Custom::Where - Where clause |
| 150 | 150 |
# Create DBIx::Custom::Where object |
| 151 | 151 |
my $where = $dbi->where; |
| 152 | 152 |
|
| 153 |
- # Set clause and parameter |
|
| 153 |
+ # Clause |
|
| 154 |
+ $where->clause(['and', 'title like :title', 'price = :price']); |
|
| 154 | 155 |
$where->clause(['and', ':title{like}', ':price{=}']);
|
| 155 | 156 |
|
| 156 |
- # Create where clause by to_string method |
|
| 157 |
- my $where_clause = $where->to_string; |
|
| 158 |
- |
|
| 159 |
- # Create where clause by stringify |
|
| 157 |
+ # Stringify where clause |
|
| 160 | 158 |
my $where_clause = "$where"; |
| 161 |
- |
|
| 162 |
- # Created where clause in the above way |
|
| 163 |
- where :title{=} and :price{like}
|
|
| 159 |
+ my $where_clause = $where->to_string; |
|
| 160 |
+ # -> where title like :title and price = :price |
|
| 164 | 161 |
|
| 165 | 162 |
# Only price condition |
| 166 | 163 |
$where->clause(['and', ':title{like}', ':price{=}']);
|
| 167 | 164 |
$where->param({price => 1900});
|
| 168 |
- my $where_clause = "$where"; |
|
| 169 |
- |
|
| 170 |
- # Created where clause in the above way |
|
| 171 |
- where :price{=}
|
|
| 165 |
+ # -> where price = :price |
|
| 172 | 166 |
|
| 173 | 167 |
# Only title condition |
| 174 | 168 |
$where->clause(['and', ':title{like}', ':price{=}']);
|
| 175 | 169 |
$where->param({title => 'Perl'});
|
| 176 |
- my $where_clause = "$where"; |
|
| 177 |
- |
|
| 178 |
- # Created where clause in the above way |
|
| 179 |
- where :title{like}
|
|
| 170 |
+ # -> where title like :title |
|
| 180 | 171 |
|
| 181 | 172 |
# Nothing |
| 182 | 173 |
$where->clause(['and', ':title{like}', ':price{=}']);
|
| 183 | 174 |
$where->param({});
|
| 184 |
- my $where_clause = "$where"; |
|
| 175 |
+ # => Nothing |
|
| 185 | 176 |
|
| 186 | 177 |
# or condition |
| 187 | 178 |
$where->clause(['or', ':title{like}', ':price{=}']);
|
| 179 |
+ # -> where title = :title or price like :price |
|
| 188 | 180 |
|
| 189 | 181 |
# More than one parameter |
| 190 | 182 |
$where->clause(['and', ':price{>}', ':price{<}']);
|
| 191 | 183 |
$where->param({price => [1000, 2000]});
|
| 184 |
+ # -> where price > :price and price < :price |
|
| 192 | 185 |
|
| 193 | 186 |
# Only first condition |
| 194 | 187 |
$where->clause(['and', ':price{>}', ':price{<}']);
|
| 195 | 188 |
$where->param({price => [1000, $dbi->not_exists]});
|
| 189 |
+ # -> where price > :price |
|
| 196 | 190 |
|
| 197 | 191 |
# Only second condition |
| 198 | 192 |
$where->clause(['and', ':price{>}', ':price{<}']);
|
| 199 | 193 |
$where->param({price => [$dbi->not_exists, 2000]});
|
| 194 |
+ # -> where price < :price |
|
| 200 | 195 |
|
| 201 | 196 |
# More complex condition |
| 202 | 197 |
$where->clause( |
| ... | ... |
@@ -206,13 +201,11 @@ DBIx::Custom::Where - Where clause |
| 206 | 201 |
['or', ':title{=}', ':title{=}', ':title{=}']
|
| 207 | 202 |
] |
| 208 | 203 |
); |
| 209 |
- my $where_clause = "$where"; |
|
| 210 |
- |
|
| 211 |
- # Created where clause in the above way |
|
| 212 |
- where :price{=} and (:title{=} or :title{=} or :title{=})
|
|
| 204 |
+ # -> pirce = :price and (title = :title or title = :title or tilte = :title) |
|
| 213 | 205 |
|
| 214 | 206 |
# Using Full-qualified column name |
| 215 | 207 |
$where->clause(['and', ':book.title{like}', ':book.price{=}']);
|
| 208 |
+ # -> book.title like :book.title and book.price = :book.price |
|
| 216 | 209 |
|
| 217 | 210 |
=head1 ATTRIBUTES |
| 218 | 211 |
|