簡體   English   中英

使用類似查詢的mysql使用小寫或大寫獲取數據?

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

我想使用 MySQL 之like查詢從數據庫中搜索數據

這是我的查詢:

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
    );

我的數據就像數據庫中的DUET {大寫字母} 我使用小寫duet搜索它返回no results found但是當我搜索Duet它找到了。

使用duet搜索時查看結果

小寫:二重奏結果

使用Duet搜索時查看結果

在二重奏中:結果

如果我在 phpmyadmin 中手動使用此 SQL 查詢,則會發現其結果。

所以這就是我想使用小寫或大寫獲取數據的原因!

我正在使用正確准備查詢,如:

 $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

它的作品。

將您的搜索字符串轉換為小寫

$search=strtolower($search);

然后使用 LOWER() 函數將您的字段值轉換為小寫並查詢如下:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM