2016-06-21 13 views
0

私は解決策が欲しいという重大な問題を抱えています。フェッチレコードは、mysqlのvarcharとtextのデータ型で特異的でパワフルです。

データベースからレコードを取得したい。 例:私が検索しているとき鉛筆次に4レコードを取得し、検索するとき鉛筆次に15レコードを取得します。 しかし、PencilsやPencilで検索した場合、15レコードが必要です。

これは、MySQLのクエリです:

SELECT DISTINCT 
    gc_products.name, 
    gc_products.*, 
    LEAST(IFNULL(NULLIF(saleprice, 0), price), 
      price) AS sort_price 
FROM 
    (`gc_products`) 
     JOIN 
    `gc_group_product` ON `gc_group_product`.`product_id` = `gc_products`.`id` 
     JOIN 
    `gc_category_products` ON `gc_category_products`.`product_id` = `gc_products`.`id` 
     JOIN 
    `gc_categories` ON `gc_categories`.`id` = `gc_category_products`.`category_id` 
WHERE 
    `gc_products`.`enabled` = 1 
     AND `gc_group_product`.`group_id` = 5 
     AND (gc_products.name LIKE '%pencils%' 
     OR gc_products.description LIKE '%pencils%' 
     OR gc_products.excerpt LIKE '%pencils%' 
     OR gc_products.sku LIKE '%pencils%') 
     OR (gc_categories.name LIKE '%pencils%' 
     OR gc_categories.excerpt LIKE '%pencils%'); 

私は、これは (gc_products)から、

SELECT DISTINCT 
gc_products.name, 
gc_products.*, 
LEAST(IFNULL(NULLIF(saleprice, 0), price), 
     price) AS sort_price 

を動作するか確認してください、私は返事を取得します

おかげ

+0

あなたは 'pencils'の質問を表示しましたが、' pencil'はどうですか? –

+0

検索するキーワードから「s」を削除することができます –

+0

おそらく、[フルテキスト検索](http://dev.mysql.com/doc/refman/5.7/en/fulltext-search .html)? –

答えて

0

を願っています JOIN gc_group_productオンgc_group_productproduct_id = gc_productsid JOIN gc_category_products ON gc_category_productsproduct_id = gc_productsid JOIN gc_categoriesオンgc_categoriesid = gc_category_productscategory_id WHERE gc_productsenabled = 1 およびgc_group_productgroup_id = 5 AND(gc_products.nameと同じように、 '%'、TRIM(鉛筆から) '、'% ')OR gc_products.description LIKE CONCAT('% '、TRIM(TRAILING BINARY ( '%')、 '%')OR gc_products.sku LIKE( '%'、FROM 'pencils')、 '%')OR gc_products.sku LIKE CONCAT( '%'、TRIM(TRAILING BINARY( 's')FROM 'pencils'))、 '%')) ( '%'、TRIM( 's')FROM 'pencils')); '%'));または、gc_categories.excerpt

+0

こんにちは あなたのSQLクエリごとに... 's'は鉛筆から削除されますが、このロジックをPHPに使用しました。もしあなたが論理を持っているなら、私に教えてください。この返信をお寄せいただきありがとうございます... –

関連する問題