使用mysql查询具有产品代码的表,该产品代码是文件名的一部分

时间:2010-11-18 12:07:43

标签: php

我正在尝试查询一个名为“filename”的列。

实际文件名由“productcode-category.jpg”

组成

如果我将产品代码发布到php页面,那么我如何获取值并在文件名列中搜索它等于产品代码?

如果它不区分大小写也会很棒。

4 个答案:

答案 0 :(得分:1)

默认情况下,mysql搜索不区分大小写。您必须通过SELECT ... WHERE BINARY somefield = 'CaseSEnSITive'专门请求案例敏感性。至于你想要的搜索,你可以这样做:

选择等等,等等   从表   文件名LIKE'%product_code_here%'

但是,如果您的产品代码是可变长度的(例如,产品的代码为'1',而其他许多代码的代码为'11','12','13'等等),则会产生许多误报。如果您创建了一个单独的产品代码字段并且可以直接比较它,而不是像'LIKE'比较那样的子字符串匹配,那么您可以省去自己的麻烦。

答案 1 :(得分:0)

您是否在具有“filename”列的表中定义了产品代码?你能告诉我们你的桌子吗?

区分大小写最有可能在您的数据库中定义。 (请参阅您的字符集:ex latin1_swedish_ci:'ci'表示不区分大小写)。这是默认值,您可能希望覆盖它。

答案 2 :(得分:0)

如果您想通过解析文件名来进行产品代码查找,那么您的表结构可能会有点低效。但是,您可能需要这样的查询:

SELECT filename FROM mytable WHERE filename LIKE 'somestring-%';

如果您将产品代码和类别存储在不同的列中,则查询可能会更快:

SELECT filename FROM mytable WHERE product_code = 'somestring';

答案 3 :(得分:0)

您可以使用以下内容:

$ sql ='select * from table其中strtoupper(filename)喜欢“'.strtoupper($ productcode)。'%”;