GVKun编程网logo

查找字符串是否是PHP中的MySQL函数(php查找字符串是否存在)

5

在本文中,我们将带你了解查找字符串是否是PHP中的MySQL函数在这篇文章中,我们将为您详细介绍查找字符串是否是PHP中的MySQL函数的方方面面,并解答php查找字符串是否存在常见的疑惑,同时我们还

在本文中,我们将带你了解查找字符串是否是PHP中的MySQL函数在这篇文章中,我们将为您详细介绍查找字符串是否是PHP中的MySQL函数的方方面面,并解答php查找字符串是否存在常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的c – 查找字符串是否是一个迭代子字符串?、MySQL - 如何通过查询查找字符串是否包含 Column、mysql sql 判断一个字符串是否存在另一字符串中、mysql – 查找字符串中的数字位置

本文目录一览:

查找字符串是否是PHP中的MySQL函数(php查找字符串是否存在)

查找字符串是否是PHP中的MySQL函数(php查找字符串是否存在)

@H_301_0@我有一个函数,它接受一个数组并根据它们的数组的键/值对创建一个sql语句.例如:

@H_301_0@

 name=>SomeKittens
@H_301_0@它变成了

@H_301_0@

(`name`) VALUES ('SomeKittens')
@H_301_0@唯一的问题是我使用MysqL字符串函数,如Now().

@H_301_0@

creation_date=>Now()
@H_301_0@变成

@H_301_0@

(`creation_date`) VALUES ('Now()')
@H_301_0@请注意,Now()已转义.有没有办法检测该值是否为MysqL字符串函数? (当然除了$value ===“Now()”)

@H_301_0@我正在使用Joomla DBO,但我也对PDO / MysqLi解决方案持开放态度.

@H_301_0@(relevant chat discussion)

解决方法:

@H_301_0@如果您允许带参数的函数,我认为您不能保护您的数据库免受sql注入.
如果只允许没有参数的函数(比如Now()),你也可以对列表进行硬编码.

c – 查找字符串是否是一个迭代子字符串?

c – 查找字符串是否是一个迭代子字符串?

我有一个字符串S.我如何找到字符串是否遵循S = nT.

例子:
如果函数应该返回true
1)S =“abab”
2)S =“abcdabcd”
3)S =“abcabcabc”
4)S =“zzxzzxzzx”

但是如果S =“abcb”返回false.

我也许我们可以重复地在S的子串上调用KMP,然后决定.

例如:对于“abab”:在“a”上呼叫KMP.它返回2(两个实例).现在2 * len(“a”)!= len(s)
在“ab”上呼叫KMP.它返回2.现在2 * len(“ab”)== len(s)所以返回true

你能建议任何更好的算法吗?

解决方法

我可以想到启发式,只有(子串)的Len(原始字符串)/ Len为正整数时才调用子字符串上的KMP.

此外,子串的最大长度必须小于N / 2.

编辑

使用这些启发式,我写了下面的Python代码,因为我的C生锈了

oldstr='ABCDABCD'    

for i in xrange(0,len(oldstr)/2):
       newslice=oldstr[0:i+1]
         if newslice*(len(oldstr)/len(newslice)) == oldstr:
             print 'pattern found',newslice
             break

MySQL - 如何通过查询查找字符串是否包含 Column

MySQL - 如何通过查询查找字符串是否包含 Column

如何解决MySQL - 如何通过查询查找字符串是否包含 Column?

我是 MysqL 的初学者,正在尝试编写查询以通过 if 语句查找字符串中是否包含 Column 中的子字符串,

假设例如我在表中有一个包含字符串值的列

这是一个字符串的例子

通过查询将尝试检查“This is an example of String”是否包含This is,然后它可能返回yes/1或{{ 1}} 不包含这是

  • 我尝试了以下查询:

    SELECT POSITION("this is" IN column1) AS 结果 FROM 表;

但我不知道如何在 MysqL 查询中使用 if 语句编写

谁能帮我解决这个问题?请让我知道这是否是正确的方法并且可能通过 MysqL 查询?

解决方法

您的查询是正确的,只是必须使用逗号而不是 IN 关键字。

SELECT POSITION(''this is'',column1) AS result FROM table;

您也可以不使用 POSITION 而是使用 LOCATE 函数(它们是注释中提到的别名)

SELECT LOCATE(''this is'',column1) AS result FROM table;

或 INSTR() 函数(在这种情况下您必须交换操作数)

SELECT INSTR(column1,''this is'') AS result FROM table;

如果找到子字符串,所有查询都返回正整数,如果没有找到子字符串,则返回零 0,如果任何操作数为 NULL,则返回 NULL。

如果您只想返回 1/0 输出,那么您必须检查获得了这些变体中的哪一个,并将其转换为所需的值。例如,

SELECT CASE WHEN LOCATE(''this is'',column1)
            THEN 1
            ELSE 0
            END AS result FROM table;

LOCATE(''this is'',column1) 被视为 TRUE,当找到子字符串时返回 1,否则 FALSE 返回 0。


注意 - 如果您使用区分大小写的排序规则,则 ''this is'' 子字符串将不会出现在 ''This is an example of String'' 值中!

如果您需要应用不区分大小写的搜索,那么您可以明确指定不区分大小写的排序规则,或者应用一个将所有符号转换为小写或大写的函数(当然,这里不需要文字,它们可以打印在需要的情况下)。例如,

SELECT LOCATE(''this is'',LOWER(column1)) AS result FROM table;

mysql sql 判断一个字符串是否存在另一字符串中

mysql sql 判断一个字符串是否存在另一字符串中

在我们利用ms sql是可以charindex来判断是字符串是否存在另一字符串中,今天 我们来介绍一下关于mysql如何判断一个字符是否存在另一个字符串中的函数。

mysql – 查找字符串中的数字位置

mysql – 查找字符串中的数字位置

以下是我在表myTable中的内容

+++++++++++++++
+ id + myWord +
+++++++++++++++
+  1 + AB123  +
+  2 + A413D  +
+  3 + X5231  +
+  4 + ABE921 +
+++++++++++++++

当我执行

SELECT id,Locate('1',myWord) as myPos
FROM myTable;

我得到1的位置.

+++++++++++++++
+ id + myPos  +
+++++++++++++++
+  1 + 3      +
+  2 + 3      +
+  3 + 5      +
+  4 + 6      +
+++++++++++++++

我想要实现的是找到整数的第一个位置,这样我将得到低于输出.

+++++++++++++++++++++++
+ id + myWord + myPos +
+++++++++++++++++++++++
+  1 + AB123  +  3    +
+  2 + A413D  +  2    +
+  3 + X5231  +  2    +
+  4 + ABE921 +  4    +
+++++++++++++++++++++++

任何想法我怎么能做到这一点?

最佳答案
如果你经常使用MysqL,最好使用string functions SUBSTRING()和ASCII()制作Stored Function.

DELIMITER //;
CREATE FUNCTION find_first_int(pData CHAR(10))
  RETURNS INT
BEGIN
  DECLARE vPos INT DEFAULT 1;
  DECLARE vRes INT DEFAULT 0;
  DECLARE vChar INT;
  WHILE vPos <= LENGTH(pData) DO
    SET vChar = ASCII(SUBSTR(pData,vPos,1));
    IF vChar BETWEEN 48 AND 57 THEN
      RETURN vPos;
    END IF;
    SET vPos = vPos + 1;
  END WHILE;
  RETURN NULL;
END//
DELIMITER ;//

结果:

MysqL> SELECT id,myWord,find_first_int(myWord) AS myPos FROM t1;
+------+--------+-------+
| id   | myWord | myPos |
+------+--------+-------+
|    1 | AB123  |     3 |
|    2 | A413D  |     2 |
|    3 | X5231  |     2 |
|    4 | ABE921 |     4 |
|    5 | ABC    |  NULL |
+------+--------+-------+

可以使用函数IFNULL()更改NULL结果.

请注意,该函数只接受CHAR(10),因此您可能希望更改更长的数据.

关于查找字符串是否是PHP中的MySQL函数php查找字符串是否存在的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于c – 查找字符串是否是一个迭代子字符串?、MySQL - 如何通过查询查找字符串是否包含 Column、mysql sql 判断一个字符串是否存在另一字符串中、mysql – 查找字符串中的数字位置等相关知识的信息别忘了在本站进行查找喔。

本文标签: