我有一个这样的mysql表,其中货币通过复选框和php存储在数据库中

product       currencies
-----------   --------------
prod_name_1   *usd*cad*euro*
prod_name_2   *usd*cad*
prod_name_3   *usd*cad*euro
prod_name_4
prod_name_5   *usd*


我想通过查询来计算字段中的货币。
预期成绩:

product       currencies count
-----------   ----------------
prod_name_1   3
prod_name_2   2
prod_name_3   3
prod_name_4   0
prod_name_5   1


我如何查询我的数据库以获得此结果?
我尝试了许多带有许多条件的函数(包括COUNT和SUM),但没有任何效果。
任何帮助将不胜感激!

谢谢大家!

最佳答案

给定NON-NF1数据,您需要一个字符串操作函数来计算不同的货币。

尝试这样的事情:

select product,
       CAST((LENGTH(currencies) - LENGTH(REPLACE(currencies, '*', ''))) / LENGTH('*') AS UNSIGNED) AS currencies_count
  from YOUR_TABLE


问题是,您将需要以连贯的方式表示数据。 IE:

*usd*cad*euro


必须始终以这种方式表示,而不是:

*usd*cad*euro*


否则,您将计算比您更多的货币。

关于mysql - 计算mysql字段中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9570336/

10-11 02:40