SELECT * FROM table_name ORDER BY rand() LIMIT 5; http://database.51cto.com/art/201011/235159.htmMYSQL查询重复记录的方法
MySQL replace函数替换字符串
SELECT REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwWw.mysql.com' 这个函数是多字节安全的。示例: UPDATE `dede_addonarticle` SET body = REPLACE ( body, '</td>','' );例如:update `edw_video` set company = substring(keyword,1,length(SUBSTRING_INDEX(keyword,",",1)))
名称:SPLIT_SUB_STR1(取得split字符串的第一段) 参数:str 要split的目标字符串 (输入格式为‘11,2,3,4,5,6’; 输出为‘2,3,4,5,6’)
SUBSTRING_INDEX(str,delim,count)
返回的子字符串str计数前出现的分隔符DELIM。如果计数是正的,左侧的最后一个分隔符(从左边算起)的一切被返回。如果计数为负,一切向右侧的最后一个分隔符(计数从右侧)将被返回。 SUBSTRING_INDEX()执行区分大小写的匹配时搜索DELIM。
SQL> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
+---------------------------------------------------------+
| SUBSTRING_INDEX('www.mysql.com', '.', 2) |
+---------------------------------------------------------+
| www.mysql |
+---------------------------------------------------------+
1 row in set (0.00 sec)
-场景大致如下:有A B两表,A表中的某一字段bids存放着一个B表主键的数组如3,4,5 而这个时候要做关联查询的时候,理想情况应该可以这样做
select b.* from A a,B b where b.id in (a.bids.split(',')) 但是mysql并不支持这样做,也没有提供类似的做法,所以很糟糕。 有一种变态的做法就是给bids做一下处理,就是
在bids的前后都加上逗号, 这样bids就变成,3,4,5, 这个时候利用模糊查询来做关联就可以达到目的了,做法如下:
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)