我想在我的仓库中查找名字如'john'的结果 OR 姓氏如'doe' 但是findOptions where子句将其视为AND。
我尝试过的事情:
global $wpdb;
//$table_name = $wpdb->prefix . "wp_wfu_log";
$user = $wpdb->get_results( "SELECT * FROM wp_wfu_log" );
echo '<table> <tr> <th>PHOTO</th> <th>test</th> </tr>';
foreach( $user as $user_data) {
echo "<tr> <td><img src='{$user_data->filepath}'></td> </tr>";
}
echo '</table>';
我对此有何期待:
let results = await userRepo.find({
where : {
firstname : Like('%John%'),
lastname : Like('%Doe%'),
}
});
关于如何在对象中使用 OR 的任何帮助?
答案 0 :(得分:2)
可以使用TypeORM docs中所述的简单typeorm .find()选项来使用OR子句。
要使用OR运算符进行查询,您需要使用条件数组代替对象。
let results = await userRepo.find({
where: [
{ firstname: Like('%John%') },
{ lastname: Like('%Doe%') }
]
});
答案 1 :(得分:0)
我不认为可以使用简单的typeorm .find()
选项编写OR子句:
https://github.com/typeorm/typeorm/blob/master/docs/find-options.md
相反,您必须使用QueryBuilder:
https://github.com/typeorm/typeorm/blob/master/docs/select-query-builder.md#adding-where-expression
这看起来像
let results = await userRepo
.createQueryBuilder()
.select()
.where("firstname LIKE %:first%", { first: John })
.orWhere("lastname LIKE %:last%", { last: Doe });
答案 2 :(得分:0)
因此,我发现我也可以在TypeORM中的位置添加一个“字符串”查询。
我尝试过这个:
let results = await userRepo.find({
where : `firstname LIKE '%john%' OR lastname LIKE '%doe%'`
})
在功能发布之前,我必须坚持使用。