我在Laravel中有一个PostgreSQL SQL查询:
$_query = Article::join('users', 'articles.user_id', '=', 'users.id')
->select('users.*','articles.*');
if( array_key_exists('title', $parameters) && $parameters['title'] != '' )
$_query->whereRaw( " LOWER(nbl_region_ref.region) like LOWER('%?%')", array( trim($parameters['region']) ) );
$result = $_query->get();
输出/错误信息:'PDOException',消息为'SQLSTATE[42P18]:不确定数据类型:7 ERROR:无法确定参数$2的数据类型'
尝试使用查询构建器:
$_query= DB::select("select users.*, articles.* from articles")
->join('users', 'articles.user_id', '=', 'users.id');
if( array_key_exists('title', $parameters) && $parameters['title'] != '' )
$_query->where( "articles.title","ILIKE", array( trim($parameters['title']) ) );
$result = $_query->get();
输出: 无效的 FROM .. 表不存在
尝试使用 ILike(基于一个没有连接的类似问题)
$_query = Article::join('users', 'articles.user_id', '=', 'users.id')
->select('users.*','articles.*');
if( array_key_exists('title', $parameters) && $parameters['title'] != '' )
$_query->where( "articles.title","ILIKE", array( trim($parameters['title']) ) );
输出:空数组
尝试:
$_query = Article::join('users', 'articles.user_id', '=', 'users.id')
->select('users.*','articles.*');
$_query->where( function ( $_queryTemp ) use ( $parameters ) {
if( array_key_exists('title', $parameters) && $parameters['title'] != '' )
$_query->whereRaw( " LOWER(nbl_region_ref.region) like LOWER('%?%')", array( trim($parameters['region']) ) );
});
输出/错误:'PDOException',错误信息为'SQLSTATE[42P18]:不确定的数据类型:7 错误:无法确定参数$2的数据类型'
我需要根据输入参数进行不区分大小写的搜索查询。