Редактировать: Поскольку вы не можете определить, какая часть входной строки является именем компании, вам необходимо проверить существующие значения для имени_компании в таблице на строку. Например, в PHP:
$input = 'Somebody has sent item to "stack-exchange"';
$result = mysql_query('SELECT company_name FROM table');
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
if strpos($input, $row['company_name']) === False {
print "Company name is not in this row!" /* Substitute whatever action you want here */
} else {
print "Company name is in this row!" /* Substitute whatever action you want here */
}
}
Работа с пользовательским вводом
Убедитесь, что input is sanitized перед включением его в качестве части запроса SQL. В противном случае ваш код будет уязвим для взлома.
К сожалению, поскольку некоторые из введенных вами строк вводятся пользователями, вы не можете быть уверены, что они будут соответствовать тем, что у вас есть в вашей базе данных. Например, "stack-exchange"
можно обоснованно представить как "Stack Exchange"
, stack exchange
, StackExchange
и т. Д. Таким образом, вам необходимо стандартизировать ввод, чтобы он соответствовал тому, как вы храните названия компаний в своей базе данных. Например, вы можете сделать все символы строчными буквами и заменить все пробелы или знаки препинания на дефисы. Это не исключает крайние случаи, такие как неправильное или вариантное написание, но это выходит за рамки этого вопроса.
Если сторонние строки вы получаете надежно содержать название компании в двойных кавычках (и двойных кавычках не используется, чтобы указать, что-нибудь еще в этих строках), вы можете получить имя компании с помощью PHP. Затем вы можете использовать предложение SQL
WHERE
, чтобы получить соответствующие строки.
$input = 'Somebody has sent item to "stack-exchange"';
$parts = explode('"', $input);
$company_name = $parts[1];
$sql_query = 'SELECT * FROM table WHERE company_name="' . $company_name . '"'
Почему у этого вопроса есть тег [tag: postgresql], в то время как принятый ответ работает с MySQL? .. – vyegorov
Я легко смог воспроизвести его в Postgres, также его в PHP не в SQL :) Но он дал мне общую идею. – ewooycom