我有一个这样的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/