快速MYSQL/PHP问题。如果使用普通搜索查询找不到结果,我将使用“不那么严格”的搜索查询作为后备,如下所示:
foreach($find_array as $word) {
clauses[] = "(firstname SOUNDS LIKE '$word%' OR lastname SOUNDS LIKE '$word%')";
}
if (!empty($clauses)) $filter='('.implode(' AND ', $clauses).')';
$query =
我有一个数据库上的位置表,它包含标题和描述两行
我用PHP和MYSQL搜索了一下
$select_place = $mysqli->query("SELECT * FROM places where title LIKE '%$searchname%' or description LIKE '%$searchname%'");
$num_place = $select_place->num_rows;
while ($rows_place = $select_place->fetch_array(MYSQL_ASSOC)){
我想获取一个不包含任何撇号、逗号或&符号的url,并将其与数据库中可能包含这些字符之一的记录进行匹配。
例如:
mywebsite.com/bobs-big-boy
mywebsite.com/tom--jerry
mywebsite.com/one-two-three
重写到
index.php?name=bobs-big-boy
index.php?name=tom--jerry
index.php?name=bobs-big-boy
然后在php中,我想使用$_GET‘’name‘来匹配记录
bob's big boy
tom & jerry
one, two,
我在页面上有一个搜索函数,当用户按下某个搜索词时,它会检查数据库并在页面上显示数据库中的适当记录(它使用%,类似于%查询)。
但是,用户可能拼写错误。无论如何,它仍然可以搜索数据库并显示一些结果。也就是说,颜色存储在数据库中,但是用户搜索颜色--我们是否可以更改WHERE子句以确保颜色通过?
代码如下:
//// Contains the search term from the form
$searched_club = $_GET['username'];(form is a PHP_SELF)
if($searched_club == ''){
我有以下MySQL查询:
create temporary table if not exists temp_terms(
term varchar(256) NOT NULL,
soundexterm varchar(4) NOT NULL
);
INSERT INTO temp_terms VALUES ('brocoli', Soundex('brocoli')), ('rice', Soundex('rice')), ('aple', Soundex('aple'));
我有一个mysql查询:
SELECT my_table.* WHERE SOUNDEX(my_col)='whatever' OR SUBSTR(SOUNDEX(my_col),4)='whatever' ORDER BY SUBSTR(SOUNDEX(my_col),4)='whatever',SOUNDEX(my_col)='whatever'
子字符串函数和soundex函数将被调用多少次?我的意思是,对于完全相同的输入,mysql会在一个查询的范围内缓存结果吗?
如果不是,我如何在查询中进行更改,以便每个函数被调用的时间
我正在帮一个朋友为他正在做的一个项目做一本字典。该项目的一部分是创建一个搜索功能。数据库在MySQL中,后台在php中。
现在,运行简单的查询是小菜一碟:
SELECT *,
(
(CASE WHEN word LIKE '%$query%' THEN 1 ELSE 0 END) +
(CASE WHEN defin LIKE '%$query%' THEN 1 ELSE 0 END)
) AS relev
FROM dictionary
WHERE word LIKE '%$q%'
我有一些歌曲名称和它们的预先计算的soundex存储在mysql表中。我想比较用户输入的soundex与预先计算的soundex‘’es。并按用户输入和歌曲名称之间的差异的顺序得到结果。
我尝试了以下查询(在java中):
String query="SELECT * FROM song ORDER BY STRCMP(pre_calculated_soundex,SOUNDEX("+user_input+")) ASC ";
但是strcmp只返回1,0或-1。所以排序是不对的。
也尝试了WHERE pre_calculated_soundex=SOUNDEX
python有soundex函数吗?如果没有,你将如何编写soundex代码?
Soundex
Code Letters
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R
SKIP A, E, H, I, O, U, W, Y, H, W, and Y
例如:
Jackson = J250
华盛顿= W252
Clement = C455
阿什克拉夫特= A261
Wu = W000
我读了一篇关于英语和语音学的有趣文章,并想看看我新发现的知识是否可以在TSQL中应用来生成模糊结果集。在我的一个应用程序中,有一个包含单词的表,我从一个单词列表中提取这些单词。它实际上是一个单列表-
Word |
------
A
An
Apple
...
their
there
Server中是否有内置函数来选择听起来与相同的单词,即使拼写不同?(全球化设置在en-ZA上--正如我上次检查的那样)
SELECT Word FROM WordTable WHERE Word = <word that sounds similar>
Excel文件中有2列(我从两个不同服务器上的两个不同SQL视图中提取它们)。它应该包含相同的数据。示例:
Name Name
Adam Smith Adam Smith
Billy Jones Bill Jones
Colin Richards Colin Richards
Dale Cooper Dal Coop
我希望能够检查每一列是否包含这些名称的精确匹配或部分匹配,问题是每个列中都有1000+名称。
我尝试过VLOOKUP,但我认为我的逻辑做得不对。他们还有别的办法吗?
编辑
我尝试的VLOOKUP逻辑是
当按姓氏搜索时,我需要在数据库中进行搜索以查找“模糊匹配”。我已经实现了以下函数来启用SoundEx函数,没有任何问题。
当涉及到构建SQL以在数据库中进行搜索时,我遇到了一些问题,动态地调用SoundEx函数。我知道可以在SQL语句中调用VBA函数,但它似乎不能正常工作。
Private Sub cmdSearch_Click()
Dim LSQL As String
Dim LSearchString As String
If Len(txtSearchString) = 0 Or IsNull(txtSearchString) = True Then
MsgBox "
我的工作是搜索部分,我面临的一个问题是查找记录。我有products表的列,如:- id,product_name
id product_name
1 woodpecker handpiece
2 hand piece
现在,当我用query=搜索“woo”时,它搜索得很好。当我下一次添加query="wooo“时,如果我搜索query="woooooooo”,如果用户输入了许多o's,那就好了。我希望至少如果用户输入错误2(o's),那么它必须搜索。
SELECT * FROM products WHERE product_name LIK
我正在对一个用户表执行soundex查询。用户的子查询以逗号分隔的字符串列表的形式提供。
我想做一些类似于下面的事情,但是我找不到能让它工作的write语法。
select * from ((Select soundex(concat(fname, lname)) t, * from users)
Union
(Select soundex(fname) t, * from users)
Union
(Select soundex(lname) t, * from users)) xusers
where t in (select soundex([column]) from ('Na
我试图使用以下代码合并MySQL中的行:
SELECT
type,
name,
GROUP_CONCAT(code SEPARATOR ',') AS code
FROM
`table1`
WHERE
name = '%name%' AND type = 'type'
GROUP BY
name
但是,DB条目没有发生任何更改,这是第一个问题。
数据库如下所示:
type | name | code
-----|-------|-------
A | Milk2 | 143521
-----
如您所见,我在main方法中将值设置为"SMITH“和"SMYTHE”。这个值的输出应该是25030,但是由于某种原因,它被编码为250300。我认为这是因为它是在单词的第一个字符之前进行编码的。例如,SMITH是"S“,所以这是编码为"S”的第一个字符。如何使S变成一个数字或一个值?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SoundDexFinal
我想从contacts表中查找名称与发音匹配的所有重复名称。例如: Rita或Reeta,Microsoft或Microsift,Mukherjee或Mukherji。
我使用了下面的查询:
SELECT contacts.id
FROM contacts
INNER JOIN (
SELECT first_name, last_name, count(*) AS rows
FROM contacts
WHERE deleted = 0
GROUP BY SOUNDEX(first_name), SOUNDEX(last_name)
HAVI