mysql - 如何在 mysql 数据库中存储具有 true/false 值的 xml 文件

标签 mysql xml load-data-infile

我有一个包含如下行的 xml 文件

<row Id="50720" UserId="24115" Name="Teacher" Date="2011-04-29T03:17:22.257" Class="3" TagBased="False" />
<row Id="50717" UserId="902" Name="c++" Date="2011-04-29T03:00:17.067" Class="3" TagBased="True" />

我想将这个 xml 文件的数据存储到我的 mysql 数据库中。 我当前的创建表语法是

create table Badges(
Id int,
UserId int,
Name nvarchar (50),
Date datetime,
Class tinyint,
TagBased bit
);

导入xml文件的sql语句如下:

LOAD XML LOCAL INFILE '/media/anurag/Learning/iit_hyderabad/Sem_3/dataset /Badges.xml'
INTO TABLE Badges(Id, UserId, Name, Date, Class,TagBased);

但是 TagBased 列无法正确存储,因为 mysql 不能直接将 False 识别为 0,将 True 识别为 1。 上述查询为数据库中的所有 False 和 True 字段存储 1。

你能帮我解决查询的问题吗?

最佳答案

您需要在 load xml 语句中使用变量将文本 true/false 转换为 bool 值 true/false,与 1/0 相同。

LOAD XML LOCAL INFILE '/media/anurag/Learning/iit_hyderabad/Sem_3/dataset /Badges.xml'
INTO TABLE Badges(Id, UserId, Name, Date, Class,@var)
SET TagBased=(@var = 'True');

关于mysql - 如何在 mysql 数据库中存储具有 true/false 值的 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873176/

相关文章:

MySQL查询根据另一个字段枚举行

php - 尝试从给定用户名的数据库中提取用户 ID,这个 MySQL 查询有什么问题?

php - 我如何才能在非常条件下从 mysql 中的大表中快速随机选择?

android - 如何修改XML节点值?

xml - 通过 XML 中的多个属性查找

php - 在 PHP 中存储设置以便稍后编辑

php - 在 PHPmyadmin 中加载数据 INFILE

php - 如何通过电子邮件响应影响 PHP 程序/mysql 数据库

MySQL加载数据查询: Issue with Backslash (\)

php - 从 PHP 将上传的 CSV 导入 MySQL 表时更正 LINES TERMINATED BY