我有一个包含如下行的 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/