您的位置:首页 > 数据库

sql查找不重复记录

2012-02-17 13:45 281 查看
http://zhidao.baidu.com/question/66282784.html?fr=qrl&cid=93&index=2

用Distinct子句呀
selectdistinct*from[yourtable]
或
selectdistinct[字段名1],[字段名2]from[yourtable]


防止重复插入记录sql实现方法

更多详细内容请查看:http://www.111cn.net/database/mysql/38213.htm

SQL语句判断空值相等

http://faq.dev.yesky.com/question-10138.html

SQL语句判断空值相等(离问题结束还有0天0小时)SQLcodeCreateTabletesta(t1varchar(10),t2varchar(10),t3varchar(10),t4varchar(10))
CreateTabletestb(t1varchar(10),t2varchar(10),t3varchar(10),t4varchar(10))

Insertintotestaselect\'hello\',\'11\',\'441\',\'441\'
unionselect\'word\',\'21\',\'441\',\'441\'
unionselect\'word\',\'21\',\'442\',\'442\'
unionselect\'word2\',\'212\',\'442\',\'442\'

Insertintotestbselect\'hello\',\'11\',\'xxx\',\'xxxx\'
unionselect\'word\',\'21\',\'xxx\',\'xxxx\'
select*fromtesta
select*fromtestb
select*fromtestaawherenotexists(select*fromtestbbwherea.t1=b.t1anda.t2=b.t2anda.t3=b.t3anda.t4=b.t4)

上面是在论坛上看到一个比对表内容变化的例子,可以精确到每个字段。

现在出现一个问题就是如果某一个字段在两个表中都为空用a.t4=b.t4的话两个字段不相等,虽然没有做任何更改,仍然得到了这个记录。因为NULL的判断不能用=号要用ISNULL。
有没有解决这个问题的方法?就是两个字段都为NULL的时候不让出现在这个结果里

还有,如果有更好的比对两个表的方法也烦请回答下,要求能得到的结果A表和B表相比B新增加的,B修改过的记录集。然后我可以用程序反映到A表去。

mysql中用sql判断两个字段是否相等

http://zhidao.baidu.com/question/178599402.html

比如
字段avarchar(200)数据:abcd
字段bvarchar(1000)数据:15,石家庄|15,石家庄|15,石家庄|15,石家庄|

字段b需要以|分割。也可以说有几个|就算字段b的长度是几。
15,石家庄|这算长度1。
查询字段a和字段b长度不等的数据:
select*from表wherelength(a)<>length(b)

正常是length(b),但现在字段b是用|分割的,怎么写


问题补充:

yang280974817大哥你看花眼了吧,回答不对题啊。


mysql具体语法不太清楚,但可以用

replace方法不知是否支持

length(b)-length(replace(b,'|',''))作为长度比较
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: