简体   繁体   English

使用类似查询的mysql使用小写或大写获取数据?

[英]get data using a lower or upper case using mysql like query?

I want to search for data from the database using MySQL like query我想使用 MySQL 之like查询从数据库中搜索数据

here is my query:这是我的查询:

global $wpdb;

if($_GET['search']){
    $search = $_GET['search'];
}
else{
    $search = $_GET['searchtop'];
}

$search_details = $wpdb->get_results(
   $wpdb->prepare(
        "SELECT * FROM 
               tbl_brand,
               tbl_generic,
               tbl_therapeutic_area,
               tbl_drug 
         WHERE 
               tbl_brand.generic_id = tbl_generic.generic_id 
         AND 
               tbl_brand.therapeutic_area_id = 
               tbl_therapeutic_area.therapeutic_area_id 
         AND 
               tbl_brand.brand_id = tbl_drug.brand_id 
         AND 
               tbl_brand.brand_name LIKE '%$search%'",""
        ),ARRAY_A
    );

My data is like DUET {upper case letter} in database I search using lower case duet It returns no results found But when I search Duet its found.我的数据就像数据库中的DUET {大写字母} 我使用小写duet搜索它返回no results found但是当我搜索Duet它找到了。

See results when I search using duet使用duet搜索时查看结果

in lower case: duet results小写:二重奏结果

See results when I search using Duet使用Duet搜索时查看结果

in Duet: results在二重奏中:结果

And If I use this SQL query manually in phpmyadmin its result found.如果我在 phpmyadmin 中手动使用此 SQL 查询,则会发现其结果。

So that reason I want to get data using a lower or upper case!所以这就是我想使用小写或大写获取数据的原因!

I am using properly prepare query like:我正在使用正确准备查询,如:

 $wpdb->prepare(
        "SELECT * FROM tbl_brand,tbl_generic,tbl_therapeutic_area,tbl_drug 
        WHERE tbl_brand.generic_id = tbl_generic.generic_id 
        AND tbl_brand.therapeutic_area_id = tbl_therapeutic_area.therapeutic_area_id AND tbl_brand.brand_id = tbl_drug.brand_id AND LOWER(tbl_brand.brand_name) LIKE %s",'%' . $wpdb->esc_like($search) . '%',""
    ),ARRAY_A

And Its works.它的作品。

Convert your search string in lower case将您的搜索字符串转换为小写

$search=strtolower($search);

Then use LOWER() function to convert your field value in lower case and query like this :然后使用 LOWER() 函数将您的字段值转换为小写并查询如下:

AND LOWER(tbl_brand.brand_name) LIKE '%$search%'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM