如何在SQL中筛选出一列中同时不含有某两个字符串
说到SQL筛选操作,特别是想要筛选出某列数据中同时不含有某两个字符串,其实方法挺简单的。首先,假设你建了个叫test的数据库,里面有个type表,表里插了几条测试数据方便你敲代码。
这时候,你可以用类似下面的SQL语句来筛选数据:
SELECT * FROM type WHERE column_name NOT LIKE '%字符串1%' AND column_name NOT LIKE '%字符串2%';
这句的意思是:选出column_name列中,既不包含“字符串1”,也不包含“字符串2”的所有记录。是不是很直观?
其实,想在SQL里搞点小筛选,用NOT LIKE配合AND条件,是个相当靠谱的招数。对了,别忘了你的数据库编码也要在连接时设置好,不然中文啥的乱七八糟的,哥们可别被坑!

怎么用PHP连接数据库以及sql_lab靶场搭建要注意啥
要用PHP连接数据库,这里告诉你个超实用的步骤,保准你连上数据库没烦恼。首先,写个php文件,比如叫handle.php,别忘了用header('Content-Type: text/html; charset=utf8')来确保网页编码OK,免得中文乱码。
接下来,用mysqli_connect()函数连接数据库,比如:
$con = mysqli_connect('127.0.0.1', '用户名', '密码', '数据库名');
if (!$con) {
die("连接失败:" . mysqli_connect_error());
}
mysqli_set_charset($con, 'utf8');
保持编码是utf8超级重要,能避免很多糟心问题。话说回来,之前老版本PHP用的mysql_connect()已经过时了,PHP7开始直接废弃,要用mysqli或者PDO。别傻傻地沿用老代码哦!
然后说说最近火的sql_lab靶场搭建,很多小伙伴装完后发现连接数据库总是崩溃,这里给你几个大招:
- 打开靶场目录下的
sql-connections文件夹,找到setup-db.php,确认里面的数据库配置和你实际环境匹配,尤其是用户名密码和主机地址。 - 注意你用的PHP版本!
mysql_connect()在PHP7+不管用了,换用mysqli或者装PHP5.x。 - 不要忘了配置数据库密码,有些环境默认空密码可不好使。
- 重启一下PHP服务,确保配置生效。
另外,连sqlserver数据库就更有趣了,如果你是用thinkphp连接sqlserver,只要打开php.ini,开启相关扩展(像是extension=php_pdo_sqlsrv.dll或者extension=php_sqlsrv.dll),然后修改thinkphp的配置文件,写上正确的服务器地址、数据库账户啥的,搞定!别忘了重启服务器,跑个小测试,打印点数据出来,你就知道连没连上了。
不过要是真的连接不上,别慌,按下面说的再检查一下:
- 在Windows,按Win+R输入
services.msc,看微软SQL服务是不是开着,没开赶紧开一下,重启服务试试。 - 报错多半是版本不兼容或者配置错了,仔细看错误提示,慢慢调。

相关问题解答
- sql中怎么筛选同时不含有两个字符串的语句吗?
嘿,这个很简单啦,基本就是用两条NOT LIKE连着写,中间用AND,像这么写:
WHERE column NOT LIKE '%str1%' AND column NOT LIKE '%str2%'
这样就能把那些包含任意一个字符串的行过滤掉,留下两个字符都不含的啦,超级实用哦!
- php用mysqli连接数据库需要注意啥编码问题吗?
哎呀,这你可一定要注意!别忘了加一句mysqli_set_charset($con, 'utf8'),否则你抓取的中文数据很可能都是乱码,糟心死了。还有,页面头也要设置utf8编码,像header('Content-Type: text/html; charset=utf8'),这样整个链路统一编码,数据才不会乱套。
- sql_lab连接数据库失败一般是啥原因?
说真的,sql_lab连接失败大多数是因为PHP版本跟代码里的函数不匹配。mysql_connect()这玩意儿PHP7以上都不支持了,得换成mysqli_connect()或者PDO。还有就是数据库密码没配好,服务没启动啥的。检查好这些,基本就能干掉大部分连接问题。
- thinkphp连接sqlserver需要做哪些配置?
嘿,thinkphp连接sqlserver,得先确保php.ini打开了sqlserver相关扩展,然后把thinkphp的数据库配置写对,服务器地址、用户名密码必须正确。改完后重启PHP服务,跑个查询测试,能打印东西说明成功。不行就看看报啥错,配置大小写啥的是不是写对了,慢慢调呗!
新增评论