亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Mysql使用php按大小獲取產品

Mysql使用php按大小獲取產品

PHP
慕神8447489 2022-10-28 09:55:25
使用過濾器選項按尺寸獲取產品。這是產品數據庫結構:id | size------------ 1 | S,M 2 | S,M,L 3 | S 4 | M,L這是 Shirtsize 數據庫結構:id | size------------ 1 | S 2 | M 3 | L這是過濾器的輸入值獲取代碼<div class="list-group">  <h3>Size</h3>    <?php       $query = "SELECT DISTINCT(shirtsize) FROM shirtsize ORDER BY id DESC";       $statement = $connect->prepare($query);       $statement->execute();       $result = $statement->fetchAll();       foreach($result as $row)       {        ?>       <div class="list-group-item checkbox">        <label>          <input type="checkbox" class="common_selector size" value="<?php echo $row['shirtsize']; ?>">            <?php echo $row['shirtsize']; ?>        </label>       </div>    <?php      }     ?>  </div>此代碼從數據庫中獲取值:if(isset($_POST["size"])){    $size_filter = implode("','", $_POST["size"]);    if (is_array($size_filter))    {        foreach ($size_filter as $value)        {           $query .= "AND size like('%".$value."%')";        }    }    else{    $query .= "AND size like('%".$size_filter."%')";    }}在這里我有像 s,m,l 這樣的數據庫,并且發布數據也像這樣.
查看完整描述

3 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

直接從 MySQL 處理您當前的數據模型可能需要一些 SQL olympics。相反,我將提供一個更好的規范化數據結構:

id | size
------------
 1 | S
 1 | M
 2 | S
 2 | M
 2 | L
 3 | S
 4 | M
 4 | L

現在,如果您想獲得不同的尺寸,您只需要:

SELECT DISTINCT(size) FROM shirtsize;

如果您想獲得每個尺寸的計數id,只需使用:

SELECT id, COUNT(*) AS cnt FROM shirtsize GROUP BY id;

通常,切勿將 CSV 數據存儲在 SQL 表中。


查看完整回答
反對 回復 2022-10-28
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

首先,我加倍@Tim Biegeleisen 建議您規范化您的數據。
但是,您可以通過使用 FIND_IN_SET() 函數而不是 LIKE 來實現結果。

SELECT *
 FROM `shirtsize` 
WHERE FIND_IN_SET('S', `size`)

該函數返回字符串在字符串列表中從 1 開始的位置。如果未找到字符串,則為 NULL。

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_find-in-set


查看完整回答
反對 回復 2022-10-28
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

謝謝各位 我有答案了

SELECT * FROM products WHERE status = '1' AND size like('%L%') OR size like('%M%')

或者

SELECT size from `products` WHERE size rlike "L|M"


查看完整回答
反對 回復 2022-10-28
  • 3 回答
  • 0 關注
  • 102 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號