Даже зная его немного поздно, и даже зная, что это немного взломать, я использовал следующее решение для достижения желаемого результата. Если вы любите Java-Naming-Conventions, мой совет состоит в том, чтобы прекратить чтение здесь ...
Имея такой класс, определяя константы, сгруппированные пустыми классами, чтобы создать вид иерархии:
public class PERMISSION{
public static class PAGE{
public static final Long SEE = 1L;
public static final Long EDIT = 2L;
public static final Long DELETE = 4L;
...
}
}
можно использовать из java как PERMISSION.PAGE.SEE
для извлечения значения 1L
. Для достижения простой возможности доступа из EL-выражений я сделал следующее: (Если есть бог кодирования - он, надеюсь, может простить меня: D)
@Named(value="PERMISSION")
public class PERMISSION{
public static class PAGE{
public static final Long SEE = 1L;
public static final Long EDIT = 2L;
public static final Long DELETE = 4L;
...
//EL Wrapper
public Long getSEE(){
return PAGE.SEE;
}
public Long getEDIT(){
return PAGE.EDIT;
}
public Long getDELETE(){
return PAGE.DELETE;
}
}
//EL-Wrapper
public PAGE getPAGE() {
return new PAGE();
}
}
, наконец, EL-Expression для доступа к тому же самому Long
становится: #{PERMISSION.PAGE.SEE}
- равенство для Java и EL-Access. Я знаю, что это вне всякого соглашения, но оно отлично работает.
Вы можете использовать операторы AND или OR, в зависимости от того, что вы хотите, чтобы поиск возвращал.
SELECT title FROM pages WHERE my_col LIKE %$param1% AND another_col LIKE %$param2%;
Оба условия должны совпадать, чтобы запись была возвращена. В качестве альтернативы:
SELECT title FROM pages WHERE my_col LIKE %$param1% OR another_col LIKE %$param2%;
Если какое-либо предложение совпадает, запись будет возвращена.
Для получения дополнительной информации о том, что вы можете делать с запросами MySQL SELECT, попробуйте документацию .
Если это только для поиска, вы можете использовать CONCATENATE_WS. Это позволило бы поиск по шаблону. В зависимости от размера таблицы могут возникнуть проблемы с производительностью.
SELECT *
FROM pages
WHERE CONCAT_WS('', column1, column2, column3) LIKE '%keyword%'
Если ваша таблица MyISAM
:
SELECT *
FROM pages
WHERE MATCH(title, content) AGAINST ('keyword' IN BOOLEAN MODE)
Это будет намного быстрее, если вы создадите индекс FULLTEXT
для своих столбцов:
CREATE FULLTEXT INDEX fx_pages_title_content ON pages (title, content)
, но будете работать даже без индекса.
Вот запрос, который вы можете использовать для поиска чего-либо в вашей базе данных в качестве результата поиска,
SELECT * FROM tbl_customer
WHERE CustomerName LIKE '%".$search."%'
OR Address LIKE '%".$search."%'
OR City LIKE '%".$search."%'
OR PostalCode LIKE '%".$search."%'
OR Country LIKE '%".$search."%'
Использование этого кода поможет вам легко искать несколько столбцов
1)
select *
from employee em
where CONCAT(em.firstname, ' ', em.lastname) like '%parth pa%';
2)
select *
from employee em
where CONCAT_ws('-', em.firstname, em.lastname) like '%parth-pa%';
Первый полезен, когда у нас есть такие данные, как: «имя, фамилия».
например,
Второе полезно, когда у нас есть такие данные, как: ' имя Фамилия'. В нем также можно использовать специальные символы.
Например,
SELECT * FROM persons WHERE (`LastName` LIKE 'r%') OR (`FirstName` LIKE 'a%');
Пожалуйста, попробуйте с вышеуказанным запросом.