php - 返回 mysql 字段中的 xml 参数

标签 php mysql sql xml

这是我的数据库

table name: table_item
id
name
param

在 param feild 中有一些“xml 参数”数据,例如:

{"model":"large","color":"red","number":"1000",}

我可以通过此代码返回名称:

select id,name FROM table_item

并在 php 中像这样打印

foreach($rows as $row)
$name= $row->name;

现在如何返回参数? 例如我想要这样的东西

foreach($rows as $row)
{
   $model= $row->param->model;
   $color= $row->param->color;
}

我正在使用 php/mysql。

或者这个:

select id,name FROM table_item
where param->color="red" or param->color="yellow" 

最佳答案

为名称/值对创建一个附加表,并使用 item_id 将其链接到您的第一个表

table: param
id   p_name  value    item_id
---------------------------------
1    model   large    1
2    color   red      1
3    number  1000     1

更改原始表:

table: item
id   name
------------------------
1    round neck cotton t-shirt

然后你可以:

SELECT item.id, item.name, param.p_name, param.value FROM item 
LEFT JOIN param ON item.id = item_id
WHERE param.p_name = 'color' AND param.value = 'red';

结果:

id   name                        p_name   value
-------------------------------------------------
1    round neck cotton t-shirt   color    red

查看它的工作情况:http://sqlfiddle.com/#!2/07ab2/1

关于php - 返回 mysql 字段中的 xml 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21970215/

相关文章:

php - 我是否需要在 ajax 请求和接收该请求的 php 之间编码/解码查询参数?

php - 显示密码不是 md5 格式的行

php - Laravel背包关系疑惑

mysql - 再次mysql "count distinct"

sql - SQL和SQL * Plus之间有什么区别?

sql - 删除 SELECT 语句中的最后一个逗号

php - PDOStatement::execute() 返回 true 但数据未更新

javascript - 从tinymce发布数据时,它不使用Codeigniter存储数据库

php - Laravel 5.4 使用 "Storage::putFile"

php - 数据库查询未按预期返回 php pdo