GVKun编程网logo

在MySQL的文本列中搜索字符串(在mysql的文本列中搜索字符串的方法)

5

在这篇文章中,我们将带领您了解在MySQL的文本列中搜索字符串的全貌,包括在mysql的文本列中搜索字符串的方法的相关情况。同时,我们还将为您介绍有关c#–在LINQ表达式中的字符串数组中搜索字符串、

在这篇文章中,我们将带领您了解在MySQL的文本列中搜索字符串的全貌,包括在mysql的文本列中搜索字符串的方法的相关情况。同时,我们还将为您介绍有关c# – 在LINQ表达式中的字符串数组中搜索字符串、C:在文件中搜索字符串、Mysql 在所有符合条件的行中搜索字段、MySQL在文本列中更改文件扩展名的知识,以帮助您更好地理解这个主题。

本文目录一览:

在MySQL的文本列中搜索字符串(在mysql的文本列中搜索字符串的方法)

在MySQL的文本列中搜索字符串(在mysql的文本列中搜索字符串的方法)

我有mysql表,其中有一列将xml存储为字符串。我需要找到xml列包含给定6个字符的字符串的所有元组。没关系-我只需要知道这6个字符串是否存在即可。

因此,将文本格式设置为xml可能并不重要。

问题:如何在mysql中搜索?即 SELECT * FROM items WHERE items.xml [contains the text '123456']

有没有一种方法可以使用LIKE运算符执行此操作?

c# – 在LINQ表达式中的字符串数组中搜索字符串

c# – 在LINQ表达式中的字符串数组中搜索字符串

if (!string.IsNullOrEmpty(Queries["SurnameInitial"]))
{
    var initials = Queries["SurnameInitial"].Split(',').ToList();
        filter.And(s => initials.Contains(s.Surname.ToArray()[0].ToString()));
}

它抛出异常

LINQ to Entities does not recognize the method ‘System.String ToString()’ method,and this method cannot be translated into a store expression.

我怎样才能匹配char vs string?

解决方法

您可以使用以下s.Surname.First()代替:
if (!string.IsNullOrEmpty(Queries["SurnameInitial"]))
{
    var initials = Queries["SurnameInitial"].Split(',');
        filter.And(s => initials.Contains(s.Surname.First()));
}

这是因为Linq to Entities不知道如何处理char.ToString()

由于您正在处理List< string>您可以使用:

filter.And(s => initials.Any(x => x.Contains(s.Surname.First()));

C:在文件中搜索字符串

C:在文件中搜索字符串

如果我有:

const char *mystr = "cheesecakes";
FILE *myfile = fopen("path/to/file.exe","r");

我需要编写一个函数来确定myfile是否包含任何mystr的出现.谁能帮助我?谢谢!

更新:事实证明我需要部署的平台没有memstr.有谁知道我可以在我的代码中使用的免费实现?

解决方法

如果您无法将整个文件放入内存,并且您可以访问GNU memmem()扩展,那么:

>尽可能多地读入缓冲区;
>使用memmem(buffer,len,mystr,strlen(mystr)1)搜索缓冲区;
>丢弃除缓冲区的最后一个strlen(mystr)字符之外的所有字符,并将它们移到开头;
>重复直到文件结束.

如果你没有memmem,那么你可以使用memchr和memcmp在纯C中实现它,如下所示:

/*
 * The memmem() function finds the start of the first occurrence of the
 * substring 'needle' of length 'nlen' in the memory area 'haystack' of
 * length 'hlen'.
 *
 * The return value is a pointer to the beginning of the sub-string,or
 * NULL if the substring is not found.
 */
void *memmem(const void *haystack,size_t hlen,const void *needle,size_t nlen)
{
    int needle_first;
    const void *p = haystack;
    size_t plen = hlen;

    if (!nlen)
        return NULL;

    needle_first = *(unsigned char *)needle;

    while (plen >= nlen && (p = memchr(p,needle_first,plen - nlen + 1)))
    {
        if (!memcmp(p,needle,nlen))
            return (void *)p;

        p++;
        plen = hlen - (p - haystack);
    }

    return NULL;
}

Mysql 在所有符合条件的行中搜索字段

Mysql 在所有符合条件的行中搜索字段

如何解决Mysql 在所有符合条件的行中搜索字段?

首先,我知道帖子标题没有正确描述情况,我会接受任何建议来更改它。

情况如下: 我有一个包含 3 列的表:itemName、keyField 和 value, 这是一个例子:

itemName  |   keyField   |   value
-----------------------------------
pen       |   color      |   blue
car       |   color      |   green
pen       |   weight     |   10 grams
pen       |   weight     |   10 grams
chair     |   price      |   $30.00
chair     |   color      |   blue
shoes     |   brand      |   whatever

如您所见,该表旨在动态存储项目的任何属性。 我需要一个查询来搜索所有颜色为:蓝色和重量:10 克的物品,在这种情况下是笔。 它还应该能够搜索所有蓝色物品(笔和椅子)。

MysqL:5.7

解决方法

您可以像这样使用聚合:

select itemname
from t
where (keyfield,value) in ( (''color'',''blue''),(''weight'',''10 grams'') )
group by itemname
having count(*) = 2;  -- both match

MySQL在文本列中更改文件扩展名

MySQL在文本列中更改文件扩展名

MySQL-pro的一个简单问题.我有一个表中包含文件名的字段(只是文件名,没有额外的文本).我需要将所有文件扩展名从“.png”更改为“.jpg”,我知道有一种方法可以使用PHP或Java等编程语言进行查询和编写脚本.

为了以防万一,删除“show create table”输出:

CREATE TABLE `photos` (
  `id` bigint(20) NOT NULL,`owner_id` int(11) DEFAULT NULL,`photo_name` varchar(255) DEFAULT NULL,`comment` text,`normal_file_name` varchar(255) DEFAULT NULL,`thumb_file_name` varchar(255) DEFAULT NULL,`full_file_name` varchar(255) DEFAULT NULL,`photo_order` int(11) DEFAULT NULL,`gallery_file_name` varchar(255) DEFAULT NULL,`photo_type` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`),KEY `FK_photos_OWNER_ID` (`owner_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

normal_file_name,thumb_file_name,gallery_file_name和full_file_name是包含文件路径的字段.

提前感谢您的帮助!

// Juriy

最佳答案
在UPDATE语句中使用REPLACE function:

UPDATE PHOTOS
   SET normal_file_name = REPLACE(normal_file_name,'.png','.jpg'),thumb_file_name = REPLACE(thumb_file_name,gallery_file_name = REPLACE(gallery_file_name,full_file_name = REPLACE(full_file_name,'.jpg')

如果没有匹配,则不会进行替换.

今天关于在MySQL的文本列中搜索字符串在mysql的文本列中搜索字符串的方法的讲解已经结束,谢谢您的阅读,如果想了解更多关于c# – 在LINQ表达式中的字符串数组中搜索字符串、C:在文件中搜索字符串、Mysql 在所有符合条件的行中搜索字段、MySQL在文本列中更改文件扩展名的相关知识,请在本站搜索。

本文标签: