查找Magento2訂單銷量MySQL字段值序列化辦法

我們在Magento 2中進行數據庫查詢最近一個月的銷量的時候,我們需要的是安裝sku的下拉選項進行查找,既是看看今年那個產品賣得最好,銷售的最好。那么我們如何做呢?

首先我們要打開Magento 2的數據庫找到表sales_order_item,這里面有sku,item,product_options,name等等其他的一些數據。

查找Magento2訂單銷量MySQL字段值序列化辦法

我們首先使用下面的sql語句查詢當年的銷量情況,例如要查詢的是sku為WJ06-的這個產品,前段頁面顯示的下拉選項在product_options字段里面的option_value 的值,記住這個是序列化存儲在數據庫中的。所以我們要得出這個值,需要提取到這個option_value的值。

例如我們通過下面的語句可以查看:

 
SELECT a.increment_id,b.product_options,b.sku,b.qty_ordered,b.created_at FROM sales_order a JOIN sales_order_item   b ON a.entity_id = b.order_id AND b.parent_item_id IS NULL  WHERE b.sku LIKE '%wj06-%' AND b.created_at > '2019-01-01';

輸出如下:

查找Magento2訂單銷量MySQL字段值序列化辦法

上圖我們只截取了部分數據,那么這只是銷量sku為WJ06的產品,那么下拉框選項還是沒有找到。別急這個選項在product_options,我們看看上圖方框框的那個完整的數據,如下所示:

{"info_buyRequest":{"qty":1,"super_attribute":{"136":"167","93":"50"},"options":[]},
"attributes_info":[{"label":"Size","value":"XS","option_id":136,"option_value":"167"},
{"label":"Color","value":"Blue","option_id":93,"option_value":"50"}],"simple_name":
"Minerva LumaTech™ V-Tee-XS-Blue","simple_sku":"WS08-XS-Blue","product_calculations":
1,"shipment_type":0}
 

通過上面我們可以看到option_value的值為50,那么50對應的下拉數據是什么呢,這就要另一個表catalog_product_option_type_title 其中50的值為catalog_product_option_type_title的option_type_id 值所相等。那么這個行的titie 字段既是這個下拉選項。

獲取得到option_value

我們要使用mysql的SUBSTRING_INDEX

SELECT a.increment_id,CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(b.product_options,'option_value":"',-1),'"',1) AS SIGNED) AS VALUE ,b.sku,b.qty_ordered,b.created_at FROM sales_order a JOIN sales_order_item b ON a.entity_id = b.order_id AND b.parent_item_id IS NULL WHERE b.sku LIKE '%wj06-%' AND b.created_at > '2019-01-01'

得到的結果:

查找Magento2訂單銷量MySQL字段值序列化辦法

下面我們和關聯表catalog_product_option_type_title如下:

SELECT gg.*,ff.title FROM
(
SELECT a.increment_id,a.store_id,CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(b.product_options,'option_value":"',-1),'"',1) AS SIGNED)  AS VALUE ,b.sku,b.qty_ordered,b.created_at FROM sales_order a JOIN sales_order_item   b ON a.entity_id = b.order_id AND b.parent_item_id IS NULL  WHERE b.sku LIKE '%wj06-%' AND b.created_at > '2019-01-01'
)
AS gg
JOIN catalog_product_option_type_title ff ON ff.option_type_id= gg.VALUE AND gg.store_id = ff.store_id ORDER BY gg.increment_id DESC
 

執行后完美解決,數據庫字段序列化。

相關文章

  1. Magento2網站每天都宕機,需要重啟服務器

    我在Magento 2.2.2中有一個電子商務網站,它幾乎每天都在宕機死機。每當它發生故障時,用戶得到的網站太長時間也會響應而且從未加載。為了讓網站再次運行,我必須重新啟動服務器然...

    2020-02-25
  2. 通過SQL在Magento中導入產品評論

    當客戶看到具有好評的產品時,他們更有可能做出購買決定。 另外,一些搜索引擎為具有產品評論的網站提供了比沒有評論的網站更高的排名。 由于Magento不支持導入產品評論的默認功...

    2020-04-23
  3. 如何在Magento2安裝配置中文漢化包

    magento2版本與magento1相比較做中文漢化變化還是很大,今天最模板整理修正如下: 常用的安裝方式有2種: 方法一:通過composer安裝中文包; 安裝中文包: composer require mageplaza/magento-2-chi...

    2020-04-23
  4. Magento2后臺登錄用戶輸入錯誤被鎖住辦法

    Magento 2有時候在登錄后臺賬號的時候,不小心輸入的錯誤密碼次數過多,這個時候Magento 2為了安全的考慮將你這個用戶給鎖住,既是不能登錄了,即使你想起了正確的密碼在輸入登錄也...

    2020-04-24
  5. Magento2控制臺命令總結

    Magento 2開發與Magento 1完全不同Magento 2更依賴命令行操作整個系統,例如這些命令實際上在管理諸如緩存,升級,部署模式,索引器等方面非常方便。您可以通過運行以下命令檢查整個命...

    2020-04-24
  6. 將Magento2從企業版遷移/降級到社區版

    Magento 2企業版(EE)是Magento 2社區版(CE)的付費版本。如果您是一家渴望成長并期望巨大網站流量的企業,那么EE是您公司的最佳解決方案。此外,企業版完全由Magento團隊支持。訂戶通...

    2020-04-24
  7. 解決Magento1發送郵件Email代碼亂碼辦法

    我們在做magento1活動或者開發插件的時候 ,時常為了通知用戶就是用系統的email發送,但是如果你發送的內容是是日語或者其他語言的時,出現了亂碼,發送email代碼如下。 private functi...

    2020-04-24
  8. 如何在magento2.3 nginx配置https

    現在有很多magento網站免費的https,基本上90%上線的網站都用了https。 但是很多朋友對magento里的nginx配置https不熟悉,現在我們就來整理下。 一,準備工作 你至少需要提供如下必須用品...

    2020-04-23
  9. 查找Magento2訂單銷量MySQL字段值序列化辦

    我們在Magento 2中進行數據庫查詢最近一個月的銷量的時候,我們需要的是安裝sku的下拉選項進行查找,既是看看今年那個產品賣得最好,銷售的最好。那么我們如何做呢? 首先我們要打...

    2020-04-24