数据库查询问题(100分)

  • 主题发起人 主题发起人 Li zhaoyang
  • 开始时间 开始时间
L

Li zhaoyang

Unregistered / Unconfirmed
GUEST, unregistred user!
本地数据库,有两个表如下例:
表table_a
ID Title
132 通货膨胀
142 通货膨胀 中国
…… ……
…… ……
表table_b
ID title
111 通货膨胀 利润
112 通货膨胀 关系 中国
113 通货膨胀 防治
114 中国 金融 通货膨胀
…… ……
…… ……
目的是用Table_a中的ID替换表Table_b中的ID,
要求通过两表中的title字段发生联系,如Table_b的title字段
同时有“通货膨胀”和“中国”的用“142”替换其ID字段值,只有
“通货膨胀”用“132”来替换。

如何实现?最好有代码。
 
一个sql命令恐怕不行
 
我就是用的update,问题在于
如何构造where条件语句。

请各位大虾帮忙,继续指教!
 
至少得用2重循环吧.
while not table1.eof do begin
n := table1.fields[0];
s := table1.fields[1];
//将table1中的每条记录的title切分成一组关键字(比如, "中国"和"通货膨胀" 和....,
顺便问一句:设计的数据库时在想什么呢?)
{ 用个循环生成update table2的sql 语句
....'update table2 set table2.id =' + inttostr(n)+' where table2.title like "%'+'中国'+'%" and table2.title like "%'+'通货膨胀'+'%" and .....'}
table1.next;
end;
 
to:Another_eYes
首先谢谢你的回答!
我就是使用的这种方法,完全一样,问题
是如何构造where后的条件(请详细指教)。
另外,用这种方法时,如Table_a中存在
如下记录:
152 通货膨胀 发展中国家
使用 ……like "%'+'中国'+'%" and table2.title like "%'+'通货膨胀'+'%"
则会出现错误,对应ID为152和142。

各位大虾,有没有其它的解决方法呢?
 
换一个思路,有个比较土的笨办法:
将title字段中的项目用某种办法分隔,如:
表table_a
ID Title
132 [通货膨胀]
142 [通货膨胀][中国]
…… ………… ……
表table_b
ID Title
111 [通货膨胀][利润]
112 [通货膨胀][关系][中国]
113 [通货膨胀][防治]
114 [中国][金融][通货膨胀]
…… ………… ……
再按你和eyes的办法查询即可。
 
try follow:
where title like '%通货膨胀{1}%{2}中国%'
//标记为{1},{2}为space,在win98+paradox+sql explore测试通过
 
To 沈前卫:
这种方法不行,形如“…… 中国 …… 通货膨胀 ……”
的检索不出来!
To liuly:
你的方法很值得借鉴!

这个问题我今天已经基本解决了,
多谢各位的帮忙!

如果没有新的方法,我打算一二天就分分了!


 
前几天网络不通,
原来是交换机坏了!
让各位久等了!
谢谢诸位!
 
要完全消除岐义,可能只能用liuly说的用特殊字符来分隔数据段中的多项数据
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
回复
0
查看
782
爱音乐的孩子是小白
后退
顶部