Mysql 商品多特征数据库设计及查询方式

Mysql 商品多特征数据库设计及查询方式,第1张

在设计Mysql商品特征数据库时,我们可以采用类似“键值对”的方式进行存储。具体而言,我们可以设计以下两个表:

1 商品表

商品ID 商品名称

1    商品1  

2    商品2  

3    商品3 

这样,我们可以在商品表中存储每个商品的基本信息,而在特征表中存储每个商品的特定特征。对于查询特定特征的商品,我们可以使用如下的SQL语句:

SELECT 商品表商品名称

FROM 商品表

INNER JOIN 特征表 ON 商品表商品ID = 特征表商品ID

WHERE 特征表特征名称 = '风格' AND 特征表特征值 = '新中式';

这个SQL查询语句会返回所有风格为“新中式”的商品名称。我们可以根据需要修改特征名称和特征值来查询不同的特定特征商品。

如果字符串可以用<,>符号比较的话(停电用手机无法验证能不能用)

假设你主键名称是Z,表为T

前一行:

select TOP1 Z from T where Z>'UUID' order by Z DESC

后一行:

select TOP1 Z from T where Z<'UUID' order by Z

合并:

在中间加 UNION ALL

这个不行就去查游标使用吧

第一步建连接:就是一java连接就行

第二步是建立一个类这类的与数据库字段对象用于java的面向对象importjavautilDate;

//存放数据的javabean,属性和表中的字段是一一对应的publicclassUser{

privateintuserid;

privateStringusername;

privateStringpassword;

privateDatelogintime;

publicUser(){

}

publicvoidsetUserid(intuserid){

thisuserid=userid;

}

publicvoidsetUsername(Stringusername){

thisusername=username;

}

publicvoidsetPassword(Stringpassword){

thispassword=password;

}

publicvoid(Datelogintime){

thislogintime=logintime;

}

publicintgetUserid(){

returnuserid;

}

publicStringgetUsername(){

returnusername;

}

publicStringgetPassword(){

returnpassword;

}

publicDate(){

returnlogintime;

}}

第三步是建立一个SQL访问类:importjavasql;importjavautil;publicclassUserDAO{

//按条件查找多条记录

publicListfindAll(Stringfilter){

Connectionconn=Db();

Listdatas=newArrayList();

if(filter!=null){

filter="where"filter;

}else{

filter="";

}

try{

ps=conn(

"selectfromusertb"filter);

ResultSetrs=ps();

while(rsnext()){

Useruser=newUser();

usersetUserid(rsgetInt(1));

usersetUsername(rsgetString(2));

usersetPassword(rsgetString(3));

user(rsgetDate(4));

datasadd(user);

}

}catch(ex){

ex();

}finally{

DbcloseConn(conn);

}

returndatas;

}}第四步是这在jsp上用来访问SQL访问类调用方法获取数据

----首先定义一个split函数,其作用是将字符串拆分成表

CREATE FUNCTION [fn_split]

(@SourceSql varchar(8000), @StrSeprate varchar(10))

RETURNS @temp table

(

  [n] int NULL,

  [a] varchar(100) NULL

)

AS

BEGIN

declare @i int,@n int;

  set @n=0;

  set @SourceSql=rtrim(ltrim(@SourceSql));

  set @i=charindex(@StrSeprate,@SourceSql);

  while (@i>=1)

  begin

    set @n=@n+1;

    insert @temp([n],[a]) values(@n,left(@SourceSql,@i-1));

    set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i);

    set @i=charindex(@StrSeprate,@SourceSql);

  end

  if (@SourceSql<>'')

  begin

    set @n=@n+1;

    insert @temp([n],[a]) values(@n,@SourceSql);

  end

    return

END

GO

--接下来利用这个函数将数组转化成表,查出A的对应值

declare @C varchar(100),@D varchar(100);

set @C='a1,a2,a3,a4,a5,a6';

set @D='b1,b2,b3,b4,b5,b6';

declare @A varchar(10),@B varchar(10);

set @A='a4';

select @B=t2a from fn_split(@C,',') t1,fn_split(@D,',') t2 where t1n=t2n and t1a=@A;

select @B;

--这里将得到@B=b4

--接下来就可以使用@B了

select TOP 7 from Data_Content where title = @B  order BY ID DESC

以上就是关于Mysql 商品多特征数据库设计及查询方式全部的内容,包括:Mysql 商品多特征数据库设计及查询方式、如何用一条SQL语句获取当前主键的上一条和下一条的数据​、在SQL中如何访问类调用方法获取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9714072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存