我正在尝试查询一个名为“filename”的列。
实际文件名由“productcode-category.jpg”
组成如果我将产品代码发布到php页面,那么我如何获取值并在文件名列中搜索它等于产品代码?
如果它不区分大小写也会很棒。
答案 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)。'%”;