3

嗨,网络上的好人,

假设我有这个查询

$query ="select col1, col2 From table where condition";

我想对 col2 的值进行以下操作

$DLMPos = strpos(col2, '-DLM'); 
if($DLMPos != "" && $DLMPos >= 0){
$col2= strpos(substr(col2, $DLMPos, strlen(col2)), " ");        
}

问题:有没有办法在查询中包含这种处理 == > $query ="select col1,if(bla bla bla) From table where condition";。

我知道我们可以在 mysql 查询中执行 if 语句,但我们可以执行 strpos 和 substr 之类的操作吗?

提前致谢

4

2 回答 2

5

你可以在这里找到 MySQL 的字符串处理函数列表:http: //dev.mysql.com/doc/refman/5.6/en/string-functions.html

strposandsubstr大致对应于LOCATEand SUBSTRING,尽管对于您的用例,您可能会发现SUBSTRING_INDEX更有用:

从出现分隔符str之前的字符串返回子字符串。如果是正数,则返回最终分隔符左侧(从左侧算起)的所有内容。如果为负数,则返回最终分隔符右侧(从右侧开始计数)的所有内容。countdelimcountcount

还有一个IF函数可以让你编写条件。

于 2013-07-09T13:13:27.063 回答
0

我不确定如何准确地执行您需要的操作,但是如果您使用该mysql_fetch_row()函数读取每一行,则可以在循环中对每条记录执行逻辑。

看看这个关于如何做到这一点的一些信息:PHP:一次获取一个 MySQL 记录

于 2013-07-09T13:23:12.683 回答